程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [LeetCode 229] Majority element II

[LeetCode 229] Majority element II

編輯:C++入門知識

[LeetCode 229] Majority element II


Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.

 

Solution:

At most has two elements in the result, can use two counter to record occurrence. Then calculate if match the condition.

 

public List majorityElement(int[] nums) {
        List result = new ArrayList<>();
        if(nums.length==0) return result;
        int n1 = nums[0];
        int n2 = 0;
        int count1 = 1;
        int count2 = 0;
        for(int i=1;inums.length/3) result.add(n1);
        if(n1 == n2) return result;
        if(count2>nums.length/3) result.add(n2);
        return result;
    }


 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved