zoukankan      html  css  js  c++  java
  • LeetCode 24.找出数组中出现次数大于二分之一数组长度的数

    题目描述

    难度:简单

    给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

    你可以假设数组是非空的,并且给定的数组总是存在多数元素。

    示例 1:

    输入: [3,2,3]
    输出: 3


    示例 2:

    输入: [2,2,1,1,1,2,2]
    输出: 2

    解题思路

    用一个map,遍历数组,如果map中存在以这个数字的key,将该key对应的value值加1

    如果不存在,则以这个数字为key,以1为value值。

    代码如下

    class Solution {
     public int majorityElement(int[] nums) {
            Map<Integer, Integer> map=new HashMap<Integer, Integer>();
            int majority=(nums.length+1)/2;
            for (int i = 0; i < nums.length; i++) {
                if (map.containsKey(nums[i])) {
                    map.put(nums[i], map.get(nums[i])+1);
                    
                }else {
                    map.put(nums[i], 1);
                }
                if (map.get(nums[i])>=majority) {
                    return nums[i];
                }
                
            }
            return 0;
    
        }
    }
  • 相关阅读:
    P1052 过河
    P1004 方格取数
    自定义事件
    自定义单选,多选按钮
    构造函数+原型的js混合模式
    图标
    格式化
    时间 ---- 时间简史
    居中
    插入DOM元素
  • 原文地址:https://www.cnblogs.com/Transkai/p/12488704.html
Copyright © 2011-2022 走看看