LeetCode笔记:多数元素
问题
给定一个大小为 n 的数组 num,返回多数元素。
多数元素是出现超过⌊n/2⌋次的元素。 您可以假设多数元素始终存在于数组中。
案例 1:
Input: nums = [3,2,3]
Output: 3
案例 2:
Input: nums = [2,2,1,1,1,2,2]
Output: 2
约束条件:
n == nums.length
1 <= n <= 5 * 104
-231 <= nums[i] <= 231 - 1
进阶:您能解决线性时间和 O(1)空间中的问题吗?
解法
代码:
/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function (nums) {
const result = []; //result array
const obj = {}; //count
// Count the number of occurrences of each number
nums.forEach((ele) => {
if (ele in obj) {
obj[ele] += 1;
} else {
obj[ele] = 1;
}
});
// Determine whether the conditions are met
for (let key in obj) {
if (obj[key] > nums.length / 2) {
result.push(key);
}
}
return result;
};
评论