剑指offer:数组中出现次数超过一半的数字
来源:互联网 发布:国内人脸数据库 编辑:程序博客网 时间:2024/06/08 08:01
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
方法1:普通的遍历
【运行时间:14ms 占用内存:8276k】
public class Solution { public int MoreThanHalfNum_Solution(int [] array) { int length=array.length/2; int count=1; int value=0; if(array.length==1) return array[0]; for(int i=0;i<array.length;i++){ for(int j=i+1;j<array.length;j++){ if(array[i]==array[j]){ count++; if(count>length){ value=array[i]; return value; } } } count=1; } return 0; }}
方法2:数组的中位数值
【运行时间:13ms 占用内存:8408k】
import java.util.*;public class Solution { public int MoreThanHalfNum_Solution(int [] array) { if(array==null||array.length==0)return 0; int len=array.length; Arrays.sort(array); int number=array[len/2]; int count=0; for(int i=0;i<array.length;i++){ if(number==array[i]) count++; } if(count<=len/2){ return 0; } return number; }}
阅读全文
0 0
- 剑指offer--数组中出现次数超过一半的数字
- 《剑指offer》数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 【剑指Offer】数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字||剑指offer
- 剑指offer 数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- [剑指offer]数组中出现次数超过一半的数字
- 《剑指offer》-数组中出现次数超过一半的数字
- 剑指offer|数组中出现次数超过一半的数字
- 剑指offer-数组中出现次数超过一半的数字
- 《剑指offer》数组中出现次数超过一半的数字
- 剑指offer - 数组中出现次数超过一半的数字
- 剑指Offer:数组中出现次数超过一半的数字
- 剑指offer-数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 剑指offer 数组中出现次数超过一半的数字
- Java RTTI和反射机制
- spring mvc restful 传入List
- PHP 数组
- Spring boot 配置Servelt、Filter、Listener
- 高精度计算——加法&&减法
- 剑指offer:数组中出现次数超过一半的数字
- 基于python实现的抓取腾讯视频所有电影的爬虫
- C# 组元Tuple
- springmvc中的转发和重定向
- UE4战争迷雾的制作
- network_setup.sh分析
- 习题 5.5 求s=a+aa+aaa+···aa···a之值,其中a是一个数字,n表示a的位数,n由键盘输入。
- MyBatis中的statementType详解
- C++ tcp/ip网络编程中listen函数和accept函数详解和区别