Java實現-主元素2

給定一個整型數組,找到主元素,它在數組中的出現次數嚴格大於數組元素個數的三分之一。


 注意事項

數組中只有唯一的主元素

樣例

給出數組[1,2,1,2,1,3,3] 返回 1

public class Solution {
    /**
     * @param nums: A list of integers
     * @return: The majority number that occurs more than 1/3
     */
    public int majorityNumber(ArrayList<Integer> nums) {
        // write your code
        HashMap<Integer,Integer> map=new HashMap<Integer, Integer>();
		map.put(nums.get(0), 1);
		for(int i=1;i<nums.size();i++){
			if(map.containsKey(nums.get(i))){
				map.put(nums.get(i), map.get(nums.get(i))+1);
			}else{
				map.put(nums.get(i), 1);
			}
		}
		Set<Integer> set=map.keySet();
		Iterator<Integer> it=set.iterator();
		while(it.hasNext()){
			int temp=it.next();
			if(map.get(temp)>nums.size()/3){
				return temp;
			}
		}
		return 0;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章