169. 求众数

    xiaoxiao2024-11-20  4

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

    你可以假设数组是非空的,并且给定的数组总是存在众数。

    1.排序找中位数

    class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/2]; } }

    2.摩尔投票

    public static int majorityElement(int[] nums) { int count=0;//计算当前的数字出现的次数 int mj=0;//当前判断的元素 for (int i = 0; i < nums.length; i++) { if(count==0){//当次数为0时,则换下一判断元素 mj=nums[i]; count=1; } else if (nums[i]==mj) { count++;//当前元素等于判断元素,次数加一 } else { count--;//不等于则次数减一 } } return mj; }
    最新回复(0)