169、求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
难度:简单 题目地址:https://leetcode-cn.com/problems/majority-element/
1、C语言代码:
int cmp(const void *a, const void *b){
return *(int*)a - *(int*)b;
}
int majorityElement(int* nums, int numsSize){
qsort(nums, numsSize, sizeof(nums[0]), cmp);
return nums[numsSize/2];
}
解释: 因为题目说众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素,所以排序后中间的数就是众数。
知识点回顾: 无。
2、Java代码:
class Solution {
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length/2];
}
}
解释: 类似于C语言的求解思路。
知识点回顾: 无。
3、Python代码:
class Solution:
def majorityElement(self, nums: List[int]) -> int:
return sorted(nums)[len(nums) // 2]
解释: 类似于C语言的求解思路。
知识点回顾: 无。
4、JavaScript代码:
/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function(nums) {
return nums.sort()[parseInt(nums.length/2)];
};
解释: 类似于C语言的求解思路。
知识点回顾:
1、parseInt() 函数可解析一个字符串,并返回一个整数。
语法:parseInt(string, radix)
string:必需。要被解析的字符串。
radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
返回值:返回解析后的数字。
更多解法: 参考官方题解。