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;
    
        }
    }
  • 相关阅读:
    “王者对战”之 MySQL 8 vs PostgreSQL 10
    PostgreSQL 进程结构
    Linux core dump 诊断进程奔溃退出
    linux下core dump--转载
    2.4 等比数列
    2.3 等差数列的前n项和
    2.2 等差数列
    1.1.1 三角形正弦定理
    调整颜色
    去括号法则
  • 原文地址:https://www.cnblogs.com/Transkai/p/12488704.html
Copyright © 2011-2022 走看看