Java實現-主元素1

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


 注意事項

You may assume that the array is non-empty and the majority number always exist in the array.

樣例

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

public class Solution {
    /**
     * @param nums: a list of integers
     * @return: find a  majority number
     */
    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()/2){
				return temp;
			}
		}
		return 0;
    }
}


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