Day1 新手挑戰LeetCode — 1. Two Sum

Peggy Hung
Sep 16, 2022

--

挑戰30天每日一題LeetCode!從中試著去思考和解題,希望可以進步!

前言

筆者這一、兩個月才開始寫LeetCode,常需要花很久的時間才寫得出來,如果寫不出來,也會去參考別人的解題思路與方法,所以想透過此次鐵人賽紀錄自己寫LeetCode的過程,並督促一下自己。因此,也鼓勵如果有想要寫LeetCode的朋友們,可以註冊LeetCode,一起刷題、交流唷!

這30天挑戰的題目來源是在LeetCode中Top Interview Questions的Easy等級,連結為https://leetcode.com/problem-list/top-interview-questions/?page=1&difficulty=EASY

題目

翻譯
題目給一個整數的陣列nums和一個整數target,當陣列nums中兩個數字相加等於target時,則回傳兩個數字在陣列nums的位置。

你可能會假設每個輸入都只有一個解法,並且你可能不會重複使用相同的元素。

你可以按任何順序來回傳答案。

範例

限制條件

思路
先從陣列中選取一個數字,再去與後面的數字各別相加,如果相加等於target,就回傳兩個數字的位置,如果相加不等於target,就依序選取陣列中的數字,再去與後面的數字各別相加。

因此,使用兩個for迴圈跑陣列nums的數字,從 i = 0 開始跑第一個迴圈,再從 j = i + 1 開始跑第二個迴圈,當符合兩個數字相加等於target,就回傳兩個數字的位置([i, j])。

解題

/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] === target) { return [i, j] }
}
}
};

題目連結
https://leetcode.com/problems/two-sum/

快來一起動手寫LeetCode吧!

文章同步更新於2022 IT鐵人賽

--

--