面试题29:数组中出现次数超过一半的数字
来源:互联网 发布:pdf图书下载软件 编辑:程序博客网 时间:2024/06/06 07:07
面试题29:数组中出现次数超过一半的数字
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
代码:
package offer;/** * 面试题29:数组中出现次数超过一半的数字 * 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。 * 由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 */public class _29_num_times {public static void main(String[] args) {int[] a={1,2,3,2,2,2,5,2,4};Solution29 solution29 = new Solution29();int result=solution29.MoreThanHalfNum_Solution(a);System.out.println(result);}}class Solution29 { public int MoreThanHalfNum_Solution(int [] array) { if(array.length==0){ return 0; } int count=1; int design=array[0]; for(int i=1;i<array.length;i++){ if(design==array[i]){ count++; }else{ count--; if(count==0){ count=1; design=array[i]; } } } count=0; for(int i=0;i<array.length;i++){ if(design==array[i]){ count++; } } if(count*2>array.length){ return design; } return 0; }}
0 0
- 面试题:数组中出现次数超过一半的数字
- 面试题:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- [剑指offer][面试题29]数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字(面试题 29)
- 剑指Offer:面试题29 数组中出现次数超过一半的数字
- 面试题29 数组中出现次数超过一半的数字
- 剑指offer 面试题29—数组中出现次数超过一半的数字
- 《剑指Offer》学习笔记--面试题29:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- 【剑指Offer学习】【面试题29 :数组中出现次数超过一半的数字】
- 面试题29_数组中出现次数超过一半的数字
- 剑指Offer面试题29(java版):数组中出现次数超过一半的数字
- 面试题29数组中出现次数超过一半的数字
- 剑指offer面试题29-数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- java书籍
- SQL for ElasticSearch—Crate.io简介
- 23种设计模式(2):工厂方法模式
- PHP数组的查找算法
- 506. Relative Ranks
- 面试题29:数组中出现次数超过一半的数字
- Android——Fragment(碎片)的概念设计...
- 面试题30:最小的K个数
- 基础练习 高精度加法
- MySQL-正则表达式进行复杂匹配
- 字典树
- ccf试题 火车购票
- 【专访刘洪峰】我为什么坚守了.NET技术十多年
- C++ 类对象实例创建的4种方法