渣渣一個,只能從最基礎開始做,但是會記錄每個題的思路和過程,從之前能找到的到以后,慢慢記錄
題目1:
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。
nums = [2, 7, 11, 15], target = 9 要求得到 [0, 1]
我的想法是類似將第一個數字固定,然后去依次比較之后的數字,把符合要求的添加到一個空數組當中,最后返回
1 function getSum(nums, target) { 2 var newArr = []; 3 for (var i = 0; i < nums.length; i++) { 4 for (var j = i + 1; j < nums.length; j++) { 5 console.log(i); if (target === nums[i] + nums[j]) { 7 newArr.push(i, j); 8 } 9 } 10 } 11 return newArr; 12 }
這個能夠滿足題意,不過沒有考慮性能方面的問題, 我比較在意的是在數組比較長的情況下,只顯示索引會顯得不夠明顯,所以我稍微改了一下,用二維數組的方式直觀的顯示對應的元素本身
1 function getSum(nums, target) { 2 var newArr = []; 3 for (var i = 0; i < nums.length; i++) { 4 for (var j = i + 1; j < nums.length; j++) { 5 if (target === nums[i] + nums[j]) { 6 newArr.push([nums[i], nums[j]]); 7 } 8 } 9 } 10 return newArr; 11 }