库存管理 II (库存管理 II)

 

思路:投票法

// @Title: 库存管理 II (库存管理 II)
// @Author: qisiii
// @Date: 2022-02-21 14:28:58
// @Runtime: 1 ms
// @Memory: 44.5 MB
// @comment: 投票法
// @flag: BLUE
class Solution {
     public int majorityElement(int[] nums) {
       int max=nums[0];int maxCount=1;int count=1;
       while(count<nums.length){
           if(nums[count]==max){
               maxCount++;
           }else{
               maxCount--;
           }
           if(maxCount==0){
               max=nums[count];
               maxCount=1;
           }
           count++;
       }
       return max;
    }
}

思路:排序

// @Title: 库存管理 II (库存管理 II)
// @Author: qisiii
// @Date: 2022-02-21 14:16:50
// @Runtime: 2 ms
// @Memory: 44.5 MB
// @comment: 排序
// @flag: ORANGE
class Solution {
     public int majorityElement(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length/2];
    }
}

思路:hash

// @Title: 库存管理 II (库存管理 II)
// @Author: qisiii
// @Date: 2022-02-21 14:13:11
// @Runtime: 16 ms
// @Memory: 46.6 MB
// @comment: hash
// @flag: BLUE
class Solution {
     public int majorityElement(int[] nums) {
        int ban=(nums.length-1)/2;
        Map<Integer,Integer> map=new HashMap(ban);
        for(int i:nums){
            if(map.containsKey(i)){
                map.put(i,map.get(i)+1);
            }else{
                map.put(i,1);
            }
            if(map.get(i)>ban){
                return i;
            }
        }
        return -1;
    }
}
Licensed under CC BY-NC-SA 4.0
最后更新于 2024-10-18