leetcode--1、15、167 2Sum、3sum
2017-09-23 16:52
253 查看
L1:
无序数组找出相加为target的两个数
特征:无序、无重复、每个元素只能用一次、有且只有一组答案
Tag:O(n) hashmap
解:
Step1:hashmap中,key存储number,value存储index。
Step2:在hashmap的key中寻找 target-number。只需常数时间。
Step3:一边建表一边比较。如果找到,return;如果没找到,将其编入表中。
坑:
不能先建立hashmap完整hashmap之后再逐一比较。因为不可避免同一个元素找到自己。
例如:[3,4,2], target=6。会返回下标[0,0]。
L167:
有序数组找出相加为target的两个数。
特征:有序、无重复、每个元素只能用一次、有且只有一组答案
Tag:O(n) Two Pointers
解:
一个指针放head,一个指针放tail,
如果nums[head]+nums[tail]<target,则head++; 否则,则tail--
遍历直到head==tail。
注:
语法。
Vector<int> result {head+1,tail+1}
Return result;
L15: 3sum
无序数组找出三个数,这三个数相加为0。
特征:无序、有重复、有多组答案
Tag:O(n^2) Two pointers
解:
此题思路在于固定一个数之后,剩下后面的数组可以参考2sum的方法,target为0-num[i]。
Step0:empty check
Step1:排序
Step2:选定固定的数
Step3:2sum求解
坑:
重复问题。
首先,固定的那个数的重复问题。解决思路为while循环直到下一个不同的数出现,注意要将第一个存入。
Case[0,0,0,0,0]
其次,head和tail的值不能相同。判断重复后,用while一直找到不同的head和tail。
Case[-1,-1,0,0,1,1]
无序数组找出相加为target的两个数
特征:无序、无重复、每个元素只能用一次、有且只有一组答案
Tag:O(n) hashmap
解:
Step1:hashmap中,key存储number,value存储index。
Step2:在hashmap的key中寻找 target-number。只需常数时间。
Step3:一边建表一边比较。如果找到,return;如果没找到,将其编入表中。
坑:
不能先建立hashmap完整hashmap之后再逐一比较。因为不可避免同一个元素找到自己。
例如:[3,4,2], target=6。会返回下标[0,0]。
L167:
有序数组找出相加为target的两个数。
特征:有序、无重复、每个元素只能用一次、有且只有一组答案
Tag:O(n) Two Pointers
解:
一个指针放head,一个指针放tail,
如果nums[head]+nums[tail]<target,则head++; 否则,则tail--
遍历直到head==tail。
注:
语法。
Vector<int> result {head+1,tail+1}
Return result;
L15: 3sum
无序数组找出三个数,这三个数相加为0。
特征:无序、有重复、有多组答案
Tag:O(n^2) Two pointers
解:
此题思路在于固定一个数之后,剩下后面的数组可以参考2sum的方法,target为0-num[i]。
Step0:empty check
Step1:排序
Step2:选定固定的数
Step3:2sum求解
坑:
重复问题。
首先,固定的那个数的重复问题。解决思路为while循环直到下一个不同的数出现,注意要将第一个存入。
Case[0,0,0,0,0]
其次,head和tail的值不能相同。判断重复后,用while一直找到不同的head和tail。
Case[-1,-1,0,0,1,1]
相关文章推荐
- LeetCode-15-3Sum(证明/KSum)-Medium
- Leetcode: 15. 3Sum 三数之和
- Leetcode Q15: 3Sum
- (LeetCode 15) 3Sum
- [LeetCode] 15. 3Sum
- leetcode 15 3Sum
- leetcode15 3Sum
- LeetCode_OJ【15】3Sum
- 【LeetCode 15】3Sum (C++)
- LeetCode15 - 3Sum
- LeetCode(15) 3Sum
- leetcode 15 3sum & leetcode 18 4sum
- leetcode 15 3Sum
- [LeetCode] 15 - 3Sum
- leetcode——15——3Sum
- [LeetCode][15]3Sum解析与快速排序算法-Java实现
- LeetCode-15-3Sum
- 3Sum - LeetCode 15
- LeetCode 15 3Sum
- LeetCode 15 3Sum