這個問題,以C/C++語言為例,單層的for-loop就能完成,每次迭代時間是O(1),整體計算時間為線性時間O(n)無誤。
如果純粹要練功可以考慮比較「套裝」的解法。排序過的陣列,也可用像是binary Search的演算法,但時間複雜度就稍慢O(n *log n)!當然LeetCode 2 Two Sum的問題以pair (a_i,i)先進行排序後,也可以透過此法完成,進階的排序C++ STL sort有實作,需另外定義pair (a_i,i)的order,好像是merge sort,額外排序需時O(n *log n)。
[LeetCode之two sum C/C++解題雙層迴圈法]https://youtu.be/bn2ZySAsbHA
沒有留言:
張貼留言