iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
0

觀前提醒:

  1. 我預設大家已經先思考並分析過題目,沒啥想法才開始 google 找解題靈感。若無,建議每題先花 1~2 顆番茄鐘的時間來分析題目比較好。可參考番茄鐘工作法
  2. 承上,既然已經有思考過了,那我這邊直接 po 題目 + 解題想法 + code +心得 。若已經在 code 內有足夠的註解了,那我可能解題想法 & 心得的部分就不會寫太多,免得干擾你的思考。
  3. 所有解法都是已經取得系統的 Accepted,但或許不是最優解法,請多包涵。
  4. 若對於解法不太懂,可以嘗試用 Chrome 的 debugger 來試跑看看 (教學文)
  5. 最後,歡迎在下面留言指教~教學相長才會進步歐~/images/emoticon/emoticon41.gif

題目

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

Given an array of integers numsand and integer target, return the indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1]

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

解題想法

這題的概念,我認為不太難,就是直接歷遍整個 array,每次依序取出兩個數字作加法。只要兩數相加之和等於 target,那就直接 return 那兩數在 array 的位置就好。

Code

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

心得

這應該算是新手刷題時,人人都會遇到的天下第一題吧?
基本上沒有做過這題,那你應該就不算是 LeetCode 人(戰 XDDDD

謝謝大家的收看,我們明天見(鞠躬
886~


上一篇
[LeetCode with JavaScript] Day 1: 介紹 LeetCode & 系列文預告
下一篇
[LeetCode with JavaScript] Day 3: Rotate Image
系列文
[LeetCode with JavaScript] 一起來刷 LeetCode吧 ~~~ (ノ>ω<)ノ30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言