C/C++ 在一個一維數組中查找兩個數,使得它們之和等於給定的某個值


x + y = sum

1、最簡單的想法就是直接兩重循環,嵌套遍歷x和y,時間復雜度是O(N2),N是數組的元素個數。

2、轉化一下,x = sum - y。sum - y遍歷y可以得到,時間復雜度是O(N)。問題變成:對比兩個數組,是否包含相同元素。嵌套遍歷,還是兩重循環。但是如果其中一個數組是有序的,對於另一個數組的每個元素,在有序數組中二分查找,時間復雜度是O(NlogN)。而快速排序的時間復雜度是O(NlogN)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM