給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路
標籤:雜湊對映
這道題本身如果通過暴力遍歷的話也是很容易解決的,時間複雜度在 o(n2)
由於雜湊查詢的時間複雜度為 o(1),所以可以利用雜湊容器 map 降低時間複雜度
遍歷陣列 nums,i 為當前下標,每個值都判斷map中是否存在 target-nums[i] 的 key 值
如果存在則找到了兩個值,如果不存在則將當前的 (nums[i],i) 存入 map 中,繼續遍歷直到找到為止
如果最終都沒有結果則丟擲異常
時間複雜度:o(n)
public int twosum(int nums,int target) ;
}map.put(nums[i], i);
} throw new illegalargumentexception("no two sum solution");
}
1 兩數之和 雜湊雜湊
給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 最容易想到的當然是雙層迴圈的暴力解法啦,當然是超時了啊...
LeetCode雜湊表 1兩數之和
題目描述 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
噶 陣列 兩數之和(雜湊表)
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...