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

2021-07-12 06:12:13 字數 543 閱讀 5119

題目描述:

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

解題思路:

將陣列按大小排序,若存在數字出現次數超過陣列長度的一般,則陣列中位數必定為該數字 。

(1)將陣列排序完成後,取array的中位數,與陣列其他數字比較大小每重複一次,計步器loopnum加一

(2)判斷loopnum是否大於陣列長度的一半。true時,返回array中位數;false時,返回0。

實際**:

public

int morethanhalfnum_solution(int array)

}n--;

//每遍歷一次後,第二次遍歷陣列長度-1;

}//排序

for (int i = 0; i < array.length; i++)

if (find) else

//return

}}

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

何海濤 劍指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 ...

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

1 利用快速排序,排好序中間的值就是出現次數超過一半的數字 注意 判斷陣列是否有效,判斷出現次數頻率是否超過陣列大小的一半 include include include include using namespace std bool g invalid true int partsort int...