有一個數組,任何兩個結果元素之間的距離爲1(+ 1/-1)。你將如何找到它的一個元素。它可以在小於O(n)時間內完成查找連續元素相差1的數組中的元素
1
A
回答
4
只需從第一個位置開始;現在考慮搜索的數字m ;
之間的差異,如果array[0] == m
那麼我們完成;否則我們必須跳abs(array[0] - m)
職位;現在重複這個直到數組結束。
但是,我們不能比爲O(n)做的更好最壞的情況下,只考慮這種情況下,我們要找出11:
10 9 8 9 8 9 10 9 8 9 8 9 10 9 8 9 8 9 10 9 8 9 8 9
+0
「否則」和「職位」之間的部分不具有語法意義。你可以嘗試修復嗎? – Svante
2
這裏有一個簡單的想法,應該可以幫助您思考問題。
如果您正在尋找x
和abs(x-array[0]) == k
,那麼你不妨跳轉到array[k]
。
想想這個,你會得到你的算法。
現在,請考慮此算法的最壞情況。你能做到這一點,所以大多數條目必須檢查? (提示:是)
相關問題
- 1. 數組中連續元素的組合
- 2. 使用linq查找數組中的連續元素
- 3. 要檢查數組元素是連續
- 4. MongoDB:按數組元素查找元素
- 5. 使用Java查找數組的連續元素
- 6. 查找單元格數組中的元素(邏輯0或1)
- 7. 如何從numpy數組中找到連續元素的組?
- 8. ArrayIndexOutOfBoundsException找到數組中的兩個連續元素之間的最大差異
- 9. 在Java中查找元素數組中的元素
- 10. 查找數組中的多數元素
- 11. 查找數組中圍繞元素的元素
- 12. 查找數組中的最小元素。
- 13. 查找數組中的元素
- 14. 查找數組中缺少的元素
- 15. 查找數組中的重複元素?
- 16. MongoDB查找數組中的元素(subdocument)
- 17. 查找數組的中間元素
- 18. 查找數組中的重複元素
- 19. 查找哈希數組中的元素
- 20. 查找數組中的非零元素
- 21. 如何查找元素中的元素
- 22. 如何找到數組2中與數組1中的假元素相對應的元素?
- 23. 查找數組,等於剩餘的元素的總和元素
- 24. Erlang在列表中找到連續的相同元素
- 25. 組連續的一致好評元素
- 26. 查找數組元素的數量
- 27. 如何查找列表中的元素是連續的
- 28. 查找和數量的連續XML元素
- 29. 如果連續的標籤相同,元組的concat元素是相同的
- 30. 如何查找javascript數組中的相等元素數
那你試試? – PengOne