數組A[1 : : : n]
由項目填充形成一些無限集合S.(S不需要是一組 數字,並且不需要定義它的順序關係。 )描述最壞情況時間複雜度爲O(n)的算法,以確定某個項目在陣列A中是否出現超過 n/2次。不要忘記爭辯說,您的算法是正確的,並且T( n) 確實是O(n)。項目在陣列中出現超過n/2次A
-1
A
回答
1
這是一個兩步過程。
- 獲取大部分時間在數組中出現的元素。這個階段將確保如果有多數元素,那麼它只會返回。
- 檢查從上述步驟獲得的元素是否是多數元素。
僞代碼:
findCandidate(a[], size)
1. Initialize index and count of majority element
maj_index = 0, count = 1
2. Loop for i = 1 to size – 1
(a) If a[maj_index] == a[i]
count++
(b) Else
count--;
(c) If count == 0
maj_index = i;
count = 1
3. Return a[maj_index]
檢查如果在步驟1中獲得的元素是大多數
printMajority (a[], size)
1. Find the candidate for majority
2. If candidate is majority. i.e., appears more than n/2 times.
Print the candidate
3. Else
Print "NONE"
相關問題
- 1. 再次出現陣列
- 2. 查找是否有在出現的陣列的數目超過N/8倍
- 3. 作業:在列表中多次出現的Lisp項目
- 4. 確認框超過一次出現
- 5. 推插件 - 發現項目字符串/ google_app_id超過一次
- 6. 超過在PHP陣列
- 7. 過濾陣列中的項目
- 8. 從陣列中拉出單個項目
- 9. 刪除項目在tableView通過刪除項目從陣列崩潰與致命錯誤:索引超出範圍
- 10. Excel中 - 在陣列1計數的次數值出現在陣列2
- 11. 計算字符串中項目列表的出現次數?
- 12. 蟒蛇從項目多次出現另一個列表中都
- 13. 根據它們的出現次序排列項目desc在php
- 14. 刪除項目再次出現在列表視圖
- 15. 項目陣列到陣列
- 16. 在超時時從陣列中刪除項目
- 17. 無法在Android的ListView中刪除項目超過一次
- 18. 代碼來超鏈接列A中的項目的文件
- 19. 輸出字符串陣列和輸出項目從陣列
- 20. 請在陣列的第一項出現在最後一個項目
- 21. 寫出在逗號陣列結果項目每個項目後
- 22. JavaScript的發現陣列項目
- 23. 防止項目再次出現錯誤
- 24. 查找條目,其中陣列A包含從陣列乙
- 25. VueJS在陣列項目
- 26. 計數出現在陣列
- 27. json_encode超過2個陣列
- 28. PHP打印陣列項目組通過
- 29. NSCF陣列超出界限?
- 30. 陣列超出範圍 - SWIFT
答案並不難,顯示ATLEAST一些試圖在解決它。 –