微软面试100题-74
2016-05-15 19:38
399 查看
74.数组中超过出现次数超过一半的数字(数组)
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
分析:这是一道广为流传的面试题,包括百度、微软和Google在内的多家公司都
曾经采用过这个题目。要几十分钟的时间里很好地解答这道题,
除了较好的编程能力之外,还需要较快的反应和较强的逻辑思维能力。
一个数 遇到一个不同的数,抵消两个数。
74.数组中超过出现次数超过一半的数字(数组)
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
分析:这是一道广为流传的面试题,包括百度、微软和Google在内的多家公司都
曾经采用过这个题目。要几十分钟的时间里很好地解答这道题,
除了较好的编程能力之外,还需要较快的反应和较强的逻辑思维能力。
一个数 遇到一个不同的数,抵消两个数。
package com.algo.ms; public class MaxTimesThanHalf74 { public int findNum(int[] arr){ int num = 0; int times = 0; for(int i = 0; i < arr.length; i++){ if(i==0|| times == 0){ num = arr[i]; times = 1; }else if(arr[i] == num){ times++; }else if(arr[i] != num){ times --; } } return num; } public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {2,3,1,4,1,5,1,1,1,2,2,2,2,2,2}; MaxTimesThanHalf74 halfNum = new MaxTimesThanHalf74(); System.out.println(halfNum.findNum(arr)); } }
相关文章推荐
- 程序员赢在规划
- 面试,字符串内查找数字,数组保存
- 微软面试100题-73
- JAVA程序员一定知道的优秀第三方库(2016版)
- 一道关于Promise应用的面试题
- 微软面试100题-72
- 面试:数组:合并有序数组
- PHP程序员的技术成长规划
- 面试:数组: 首个正数
- 想成为更优秀的程序员?这8个方法帮你忙
- 微软面试100题-71
- 面试:数组:旋转数组搜索
- 面试:数组:旋转数组的最小值
- 前端面试问题及答案
- 面试:数组:两数组中的中序数
- 程序员的基本学习素质
- 史上最全的iOS面试题及答案
- 剑指offer面试题12 (二)
- 找数2--nkoj3679(百度面试题)
- 剑指offer面试题38:数字在已排序数组中出现的次数