LeetCode first glance-Two Sum

Question:

給予一個任意陣列(nums)與一個目標數字(target),需要回傳陣列中兩個index,其值可以相加後等於目標數字

Example:

Example 3 → array內的值可以相同,但回傳的index不能

Solution/Logic:

以Example 1: input → [2, 7, 11, 15], target → 9, output → [0, 1]帶入驗證

後記

當初的第一個想法是想辦法取得nums裡的每個數字,所以一開始就使用enumerated()

for (index, num) in nums.enumerated()…

但在取出個別數字與對應index就不知道下一步了…從別人的做法裡看到for…in… loop包了兩層就慌了,雖然知道是一個數字加一個數字這樣遞迴檢查,但腦袋各種不能理解寫法

nums[anotherNum] != nil ?? 或者…?(不對,我根本不會從array裡取得對應index lol…)

這邊透過建立新的dictionary來儲存遞迴的結果,重點就在if…else…statement上,如果所儲存的dict裡面有對應的anotherNum,就代表該遞迴的index與dict[anotherNum]的Value(也就是index)是為output解

--

--

On my way to become an iOS developer!

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store