• 题目描述

  • 思路与解析

题目描述

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

思路与解析

这里主要使用了多数投票法,先取第一个数字,出现次数是1,遍历后面的数字,如果相同则加1,如果不同则减1,结果如果为0,则把当前的数字更新,而且次数更新为1。

直到最后,则可以获取到出现次数最多的数字,再次遍历数组,统计该数字出现的次数,如果次数大于长度的一半,则说明是该数字。

public class Solution {    public int MoreThanHalfNum_Solution(int [] array) {        if(array==null||array.length==0){            return 0;        }else{            int num=array[0];            int count=1;            for(int i=1;i                if(array[i]==num){                    count++;                }else{                    count--;                }                if(count==0){                    num=array[i];                    count=1;                }            }            count=0;            for(int i=0;i                if(array[i]==num){                    count++;                }            }            if(count>array.length/2){                return num;            }else{                return 0;            }        }    }}

此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店


统计数组中每个数字出现的次数_剑指Offer(二十八) 数组中次数出现超过一半的数字...相关推荐

  1. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

    推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...

  2. java计算整数出现的次数_[剑指offer题解][Java]1到n整数中1出现的次数

    前言 众所周知,<剑指offer>是一本"好书". 如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白. 对于剑指offer题解这个系列,我的 ...

  3. java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...

    分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分 ...

  4. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

  5. opencv计算两数组的乘积_#剑指Offer#12. 构建乘积数组

    题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1]. 其中B中的元素B[i]=A[0] * A[1]... * A[i-1] * A[i+1]... * A ...

  6. 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中

    面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...

  7. 剑指offer 二维有序数组查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. java 解决方案:暴 ...

  8. java单个数组求积_[剑指offer][Java]构建乘积数组

    题目 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不能使用除法. 程 ...

  9. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

    Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...

最新文章

  1. GNU/Linux平台上正则表达式的简单使用
  2. 总结:数组名和指针完全是两码事
  3. POJ 1185 炮兵阵地 状压dp
  4. Cookies揭秘 [Asp.Net, Javascript]
  5. AA级与AAA级台灯 重要指标对比
  6. scrapy立面parse_立面设计模式–设计观点
  7. 谈谈地址转换协议ARP的概念及特点
  8. lol云顶之奕助手_云顶之奕小小英雄介绍 除了棋子以外它也很重要!
  9. 为了分页,先page.tld,再pageModel,再动态查询
  10. mac php 本地服务器,在Mac上搭建本地Apache服务器一些注意点
  11. iphone转android通讯录,苹果IPHONE通讯录电话簿转到安卓手机csv,vcf方法(ITUNES,OUTLOOK,EXCEL)...
  12. 微信小程序扫码连接WiFi项目, WiFi地推项目(带源码)
  13. 数据库系统概念第四章习题答案
  14. 关于一次生产环境项目线程数一直增长问题排查记录
  15. Unity3D逻辑热更新,第二代舒爽解决方案,L#使用简介
  16. 信息报送不及时整改措施_意见建议及整改措施
  17. Android Activity 生命周期和重要的相关函数(基础一)
  18. Brew doctor warns about “Warning: A newer Command Line Tools release is available”
  19. 一个好看的input输入动画
  20. Serverless,实现 IoT 设备运行状态缓存到Redis方案

热门文章

  1. Topo系统的益处和帮助
  2. ASP.NET页面刷新办法
  3. CentOS7中使用yum安装Nginx的方法(亲测启动方法)
  4. 自己做的压测实例(亲测)
  5. 解决python调用TensorFlow时出现FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecate
  6. ELK之centos7安装 elasticsearch6.5遇到的坑
  7. JavaScript复杂判断的更优雅写法
  8. python 增删列表_python 列表的增删改查
  9. redis value多大会影响性能_redis面试总结
  10. php 开启 pathinfo,nginx下PHP开启pathinfo模式