zoukankan      html  css  js  c++  java
  • 剑指offer[28]——数组中出现次数超过一半的数字

    题目描述

    数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

    这道题目的思路其实比较简单,就是新建一个临时对象来存储每个数字出现的次数,对输入的数组进行遍历,每遍历一次就更新一次该数字出现的次数,判断是否超过了数组长度的一半,超过了就直接return,没有的话就直接遍历,如果遍历结束之后还是没有出现对应的数字的话,就返回0;

    function MoreThanHalfNum_Solution(numbers)
    {
        let temp = {};
        const _length = numbers.length;
        for(let item of numbers){
            if(Object.keys(temp).includes(String(item))){
                temp[item] += 1;
            }else{
                temp[item] = 1;
            }
            if(temp[item]>Math.floor(_length/2)){
                return item;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    Codeforces Global Round 7 题解 (ABCDE)
    猫树 简单介绍
    pip模块
    协程
    多线程threading
    多进程multiprocessing
    DOM
    标签学习
    初步了解Bootstrap4
    初步了解jQuery
  • 原文地址:https://www.cnblogs.com/Jacob98/p/12544250.html
Copyright © 2011-2022 走看看