題意:
陣列nums中,有兩個元素的和是target,找出這兩個元素的位置。
思路:維護乙個map,用陣列的元素的值做key,用元素的位置做value。遍歷nums,對每個num來說,如果map[target - num] 有值的話,就返回map[target - num]和num的位置,如果沒有找到的話,就把num插入到map中,map[num] = index。時間複雜度o(nlogn)。
c++ code:
classsolution ;
return
result;
}map[nums[i]] = i + 1
; }
}};
python code:
classsolution(object):
deftwosum(self, nums, target):
""":type nums: list[int]
:type target: int
:rtype: list[int]
"""map ={}
for index,num in
enumerate(nums):
if target - num in
map:
return [map[target - num], index + 1]
map[num] = index + 1
js code:
/** * @param nums
* @param target
* @return */
var twosum = function
(nums, target)
for(i = 0; i < nums.length; i++)
map[nums[i]] = i + 1}
};
leetcode 1 two sum 雜湊查詢
題目 給乙個list,給乙個target.問list中哪兩個數的和為target.逐個求差.用map num index儲存資訊.不需要預先把所有的值都放到map中,因為遍歷到a的時候發現map裡面沒有b也沒關係,遍歷到b的時候a就已經在map裡了.class solution object def...
LeetCode 1 two sum 雙指標法
leetcode 1 two sum 給定乙個整數數列,找出其中和為特定值的那兩個數。你可以假設每個輸入都只會有一種答案,同樣的元素不能被重用。輸入陣列為亂序陣列,雙指標法,先拷貝輸入陣列進行公升序,從頭尾遍歷,相加比較,找到後通過遍歷輸出原陣列位置 void quicksort int list,...
LeetCode 1 Two Sum 兩數之和
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 方法一 暴力法 暴力法很簡...