本文主要是介绍leetcode169. 求众数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
思路:先进行排序,然后遍历计算,求出次数最大值,返回次数。
难点:本来怕数据会很大,想用二分法或者递归,发现有很多没法解决的问题,就直接遍历法了;同时忘记考虑了只有一个数字的情况。
class Solution {public int majorityElement(int[] nums) {Arrays.sort(nums);//用来记录众数int re = 0;//记录数值的最大次数int max = 0;//记录遍历过程中的次数int jl = 0;for(int i = 0 ; i < nums.length - 1 ; i++){if(nums[i] == nums[i+1])jl+=1;if(jl>max){max = jl;re = nums[i];}if(nums[i] != nums[i+1])jl=0;}//验证仅一个数的情况if(nums.length == 1)return nums[0];return re;}
}
这篇关于leetcode169. 求众数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!