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

2021-09-24 05:14:27 字數 964 閱讀 3003

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

先mark[ todo]

先寫方法1,比較暴力,比較愚蠢,時間複雜度會比較大

利用map,把原陣列中每個不同元素作為key,出現的次數作為value。

返回value 大於陣列長度一半的key

輸入:

輸出:2

#include #include #include #include #include using  namespace std;

class solution

// 初始化map每個元素初始值為 0

for (int j = 0; j < v_number.size(); ++j)

// 掃瞄原陣列中的每個元素,並計入數量

for (int k = 0; k < numbers.size(); ++k)

int midnumber = numbers.size()/2;

// 掃瞄map的所有元素,返回l->second > number.size()/2的元素

for (map::iterator l = m_number.begin(); l != m_number.end(); ++l)

return 0;

}};int main();

solution re;

int result = re.morethanhalfnum_solution(input);

cout << "**********==" << endl;

cout << result;

return 0;

}

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

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列,由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。hashmap 法 此法思路簡單,可以使用hashmap 記錄當前的數字和他出現的次數 但是重點在於 遍歷整個map,找到符合條件的值 2。消去法 既...

出現次數超過一半的數字

題目 陣列中有乙個數字出現的次數超過了陣列長度的一半,找出這個數字。乙個陣列中有很多數,現在我們要找出其中那個出現次數超過總數一半的數字,怎麼找呢?大凡當我們碰到某乙個雜亂無序的東西時,我們人的內心本質期望是希望把它梳理成有序的。所以,我們得分兩種情況來討論,無序和有序。如果無序,那麼我們是不是可以...

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

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