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

    方法一:

    1. class Solution {
    2. public int majorityElement(int[] nums) {
    3. HashMap<Integer, Integer> map = new HashMap<>();
    4. for (int i = 0; i < nums.length; ++i) {
    5. if (map.getOrDefault(nums[i], null) == null) {
    6. map.put(nums[i], 1);
    7. } else {
    8. map.put(nums[i], map.get(nums[i]) + 1);
    9. }
    10. }
    11. for (Integer integer : map.keySet()) {
    12. if (map.get(integer) > nums.length / 2) {
    13. return integer;
    14. }
    15. }
    16. return 0;
    17. }
    18. }
    1. class Solution {
    2. public:
    3. int majorityElement(vector<int> &nums) {
    4. int count = 0;
    5. int major;
    6. for (int x:nums) {
    7. if (count == 0) {
    8. major = x;
    9. count += 1;
    10. continue;
    11. }
    12. if (x == major) {
    13. count++;
    14. } else {
    15. count--;
    16. }
    17. }
    18. return major;
    19. }
    20. };