陣列中出現次數超過一半的數字

2021-09-05 18:08:55 字數 695 閱讀 7143

題目描述:

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。

題目解析:

先將陣列排序,記下陣列中間位置的數num;

遍歷陣列,記錄該數出現的次數count,

如果大於陣列長度一半長度len/2,則返回該數,否則返回0。

public class solution 

sort(array,0,len-1);

int count = 0;

int num = array[len/2];

for (int i = 0; i < len; i++)

}if(count <= (len/2))

return array[len/2];

}//快速排序

public static void sort(int a,int low,int high)

while(end>start&&a[start]<=key)

start++;

if(a[start]>=key)

}if(start>low) sort(a,low,start-1);

if(end}

}

陣列中出現次數超過一半的數字

何海濤 劍指offer 名企面試官精講典型程式設計題 九度oj 題目描述 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。輸入 每個測試案例包括2行 第一行輸入乙個整數n 1 n 100000 表...

陣列中出現次數超過一半的數字

陣列中出現次數超過一半的數字 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。class solution count 0 for auto i numbers if i k ...

陣列中出現次數超過一半的數字

題目描述 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。解題思路 將陣列按大小排序,若存在數字出現次數超過陣列長度的一般,則陣列中位數必定為該數字 1 將陣列排序完成後,取a...