求众数

作者: 习惯了_就好 | 来源:发表于2019-07-29 09:54 被阅读0次

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

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

示例 1:

输入: [3,2,3]
输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]
输出: 2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/majority-element
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    //因为出现次数大于n/2,所以排序后中间值一定是众数
    public int majorityElement(int[] nums) {
        // sort(nums);
        sort(nums,0,nums.length-1);
        //Arrays.sort(nums);//数组自带的有排序,呵呵
        return nums[nums.length / 2];
    }
    
    private void sort(int[] nums,int _left,int _right){
        //快排
        int left = _left;
        int right = _right;
        int temp;
        if(left <= right){
            temp = nums[left];
            while(left != right){
                while(left < right && nums[right] >= temp){
                    right--;
                }

                nums[left] = nums[right];

                while(left < right && nums[left] <= temp){
                    left++;
                }
                
                nums[right] = nums[left];
            }
            
            nums[left] = temp;
            sort(nums, _left, left - 1);
            sort(nums, right + 1, _right);
        }
    }
}

相关文章

  • 找出数组中出现次数大于N/K的所有元素

    leetcode 的求众数1 和 求众数2,然后我们可以把它泛化到K

  • 求众数

  • 求众数

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

  • 求众数

    题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2...

  • 求众数

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

  • 求众数

    题目:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设...

  • 求众数

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

  • 数组--求众数

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

  • 【LeetCode】求众数

    题目描述: 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可...

  • 求众数 II

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majori...

网友评论

    本文标题:求众数

    本文链接:https://www.haomeiwen.com/subject/bzevrctx.html