Two Sum(两数之和)哈希表解法原理
核心思想
使用 unordered_map 建立一个哈希表,保存已经遍历过的数字以及它对应的下标。
遍历数组时,对于当前数字 nums[i]:
* 计算它需要的另一个数字:
[
need = target - nums[i]
]
* 如果 need 已经存在于哈希表中,说明找到了两个数:
[
nums[i] + need = target
]
返回它们的下标。
* 如果不存在,则将当前数字和下标存入哈希表,供后续查找。
代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map&