一.需求分析
https://leetcode.cn/problems/two-sum/description/?envType=study-plan&id=shu-ju-jie-gou-ru-men&plan=data-structures&plan_progress=yt8wkdt
二.解决思路
0x1 哈希表
- 数据结构和数据类型的选择:
把元素值作为key,对应的索引值作为value,方便哈希表的查找(find);
因为2 <= nums.length <= 10^4,可以选择unsigned short
- 逻辑思路的设计
每一次循环先用target
减去当前循环的元素值nums[i]
,再去容器里面查找有没有这个数,如果有则返回容器中对应的value
和当前循环的i值
;
0x2 双for
- 数据结构和数据类型的选择:
使用n(int)
表示数组元素的数量,用来防止数组越界;
使用i(int)
表示当前数组元素的索引值;
使用j(int)
表示i索引
后面的索引值,因此j
的初始值必须是i+1 ;