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

2021-09-06 05:52:20 字數 562 閱讀 2322

題目:陣列中有乙個陣列出現的次數超過了陣列長度的一半,找出這個數字。

答:

#include "

stdafx.h

"#include

using

namespace

std;

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

int findnumber(int arr, int

length)

int nvalue = arr[0

];

int count = 1

;

for (int i = 1; i < length; i++)

else

count--;}}

return

nvalue;

}int _tmain(int argc, _tchar*argv)

; cout

return0;

}

執行介面如下:

查詢陣列中超過出現次數超過一半的數字(找發帖水王)

陣列中有乙個數字出現的次數超過了陣列長度的一半,找出這個數字。1.如果 無序,那麼我們是不是可以先把陣列中所有這些數字 先進行排序 至於選取什麼排序方法則不在話下,最常用的快速排序o n logn 即可。排完序呢,直接遍歷。在遍歷整個陣列的同時統計每個數字的出現次數,然後把那個出現次數超過一半的數字...

出現次數超過一半的數

時間限制 1000 ms 記憶體限制 65536 kb 提交數 315 通過數 126 給出乙個含有n 0 n 1000 個整數的陣列,請找出其中出現次數超過一半的數。陣列中的數大於 50且小於50。第一行包含乙個整數n,表示陣列大小 第二行包含n個整數,分別是陣列中的每個元素,相鄰兩個元素之間用單...

找出陣列出現次數超過一半的數

例如 陣列中1出現了5次超過長度9的一半。因此輸出1 注 這裡沒有考慮出現次數最多的數字是0的情況,關鍵在於方法 這裡給出兩種常用方法 這種演算法優點在於理解起來比較容易,如果乙個數出現次數超過長度的一半,那將陣列排序之後位於陣列中間位置的數一定就是要找到的數。注 需要檢測一下中間的數是否是超過一半...