1 兩數之和 陣列,雜湊表

2021-09-24 13:14:39 字數 725 閱讀 4778

給定乙個整數陣列 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 ...