題目看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[];
}
---
雙指針以後再看看ˊˋ
再找找不同寫法,我自己寫是兩層迴圈
請先 登入 以發表留言。