一個直覺的想法是,對陣列中的每個數字 x
,檢查是否有另一個數字等於 target - x
。
為了避免重複配對,我們只需在陣列中,位於 x
後面的元素中尋找 target - x
。同時,我們也要確保每個數字只用一次,不要和自己配對。
跟一流的人才幹大事,享受成功進步的高級樂趣!
內推機會來啦!能與優秀的程式設計師共事,是特別痛快的事,因為厲害的工程師大神會刺激你想要迎頭趕上的上進心,尤其是一起討論解決方案時,他們會觸發你有更好的解決思維能力,彼此共同成長並且一起享受解謎與破關般的樂趣。 你一定聽得懂我在說甚麼感覺,趕快把握機會,動動手指投遞履歷吧! 立即加入「面試讀書會」,和大家一起準備面試!
內推機會 加入讀書會 (邀請碼:1802)
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val result = IntArray(2)
for (i in nums.indices) {
val remains = target - nums[i]
result[0] = i
for (j in i + 1 until nums.size) {
if (nums[j] == remains) {
result[1] = j
return result
}
}
}
return result
}
}
時間複雜度:
,其中 是陣列中的元素數量。在最壞情況下,陣列中的任意兩個數都需要配對一次。
空間複雜度:
。
內推機會來啦!
跟一流的人才幹大事,享受成功進步的高級樂趣!
內推機會 加入讀書會 (邀請碼:1802)