本文主要是介绍求数组中出现次数超过一半的数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在一个数组中,某个数字出现的次数超过了数组元素总长度的一半,找出这个数字。
package com.threeTop.www;/*** 找出数组中超过一半的元素* @author wjgs**/
public class MoreThanHalf {/*** O(n)时间复杂度解法* @param array*/public static void find(int[]array){int t=array[0];int n=0;for(int i=0;i<array.length;i++){if(array[i]==t){n++;}else{n--;}if(n==0){t=array[i];n=1;}}System.out.println("这个元素为"+t);}public static void main(String []args){int []array={0,1,2,1,2,1,1};MoreThanHalf.find(array);}}
这篇关于求数组中出现次数超过一半的数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!