練習題之陣列中出現次數超過一半的數字
阿新 • • 發佈:2018-12-19
題目:
陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。
例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在數
組中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。
程式碼實現:
/* 解題思路: 1.先給陣列進行排序。 2.因為要找出在陣列中出現次數超過陣列長度一半的數,那麼這個數一定在中間。 3.取得中間數,然後統計次數 */ import java.util.Arrays; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { int len=array.length; if(len<1) { return 0; } int count=0; //進行排序 Arrays.sort(array); //取得中間數 int num=array[len/2]; for(int i=0;i<len;i++) { if(num==array[i]) { count++; } } //看是否存在 if(count<=(len/2)) { num=0; } return num; } }