LC :https://leetcode-cn.com/problems/majority-element/
牛客:https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=13&&tqId=11181&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
方法一:
class Solution {
public int majorityElement(int[] nums) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; ++i) {
if (map.getOrDefault(nums[i], null) == null) {
map.put(nums[i], 1);
} else {
map.put(nums[i], map.get(nums[i]) + 1);
}
}
for (Integer integer : map.keySet()) {
if (map.get(integer) > nums.length / 2) {
return integer;
}
}
return 0;
}
}
class Solution {
public:
int majorityElement(vector<int> &nums) {
int count = 0;
int major;
for (int x:nums) {
if (count == 0) {
major = x;
count += 1;
continue;
}
if (x == major) {
count++;
} else {
count--;
}
}
return major;
}
};