題目看LeetCode,出門吃飯看電影回家後很無聊

不想看小說,也不想看劇或動畫,看看看看

很菜,想用題目來增強記憶,快忘記一個月前寫的東西了

參考 WeiYuan:LeetCode 雙刀流: 1. Two Sum

https://ithelp.ithome.com.tw/articles/10269246

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======

=======雷=======
 

兩層迴圈 最好理解也最慢

Javascript

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

---

C# 上課有寫到九九乘法表迴圈有點印象

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
        for(int i=0;i<nums.Length;i++){
            for(int j=i+1;j<nums.Length;j++){
                if(nums[i] + nums[j] == target){
                    return new int[] {i,j};
                };
            };
        };
    return new int[] {};
    }
}

---

一個月後我忘記怎麼寫 python

class Solution(object):
    def twoSum(self, nums, target):
        for i in range(len(nums)):
            for j in range(i+1,len(nums)):
                if nums[i] + nums[j] == target:
                    return [i,j]

---

一層迴圈+雜湊表(哈希表) Javascript

var twoSum = function(nums, target) {

    var d = {}; 
    for(var i = 0 ; i < nums.length ; i++){
        var num1 = nums[i];         
        var num2 = target - num1;
        if(d[num2] !== undefined){ 
            return [d[num2], i]; 
        }
        d[num1] = i; 
    };
}
---

查到最快的 Javascript

var twoSum = function(nums, target) {

    const d = new Map(); 
    for(let i = 0 ; i < nums.length ; i++){
        const num1 = nums[i];         
        const num2 = target - num1;
        if(d.has(num2)){ 
            return [d.get(num2), i]; 
        }
        d.set(num1,i); 
    };
    return[];
}
---

雙指針以後再看看ˊˋ

再找找不同寫法,我自己寫是兩層迴圈

 

 

 

創作者介紹
創作者 2026年羽水記事本 的頭像
羽水

2026年羽水記事本

羽水 發表在 痞客邦 留言(0) 人氣( 2 )