leedcode記錄 ------1 .兩個總和
阿新 • • 發佈:2018-11-24
https://leetcode.com/problems/two-sum/description/
問題描述:
給定一個整數陣列,返回兩個數字的索引,使它們相加到特定目標。
您可以假設每個輸入只有一個解決方案,並且您可能不會兩次使用相同的元素。
例:
給定nums = [2,7,11,15],target = 9,
因為nums [ 0 ] + nums [ 1 ] = 2 + 7 = 9,
返回[ 0,1 ]。
草稿寫了一遍大概的意思,
var twoSum = function (nums, target) { var numOne; var numTwo; for (var i = 0; i < nums.length; i++) { for (var j = i+1; j < nums.length; j++){ if (nums[i] + nums[j] == target) { numOne = i; numTwo = j; return {numOne,numTwo} } } } };
然後在leetcode上檢測執行,提示錯誤,我輸出的是物件,而題目要求的是陣列。
所以我要將 return 後面接一個數組,提前就建好一個空的陣列來接收預計的結果,最後新增結果給result並返回即可。
修改如下,通過,只是關於什麼時間複雜度,空間複雜度,我還不曾瞭解。日後再補相關知識。
var twoSum = function (nums, target) { var result = []; for (var i = 0; i < nums.length; i++) { for (var j = i+1; j < nums.length; j++){ if (nums[i] + nums[j] == target) { result.splice(0,0,i,j); return result } } } }