行业知识
力扣hot6---双指针
2026-11-08 20:51:09
来源:互联网转载
题index.php/tags-41973.html" >���:
TLE做法(哈希+两重for循环)
标签虽然说是用双指针,但是第一个想法真就不是双指针呀。。。就感觉这道题很像:
力扣hot1--哈希-CSDN博客
于是就用了类似的想法:
- 首先要排个序,至于为什么要排序,是为了好对三元组集合去重。
- 接下来与力扣hot1的想法一样,用哈希来存储一遍这些元素,但是有的元素可能重复了好多次(注意这里数组已经排过序了),所以unordered_map,vector记录对应的索引。
- 用双重for循环来判断,第三个数是否在哈希表中,如果存在,还要判断索引是不是一致,如果一致,那就还是不行。如果不一致,那就记录下来,存入res。为了方便去重,这里采用了顺序存取三个数。
- 最后用set去重啦,虽然TLE了,但是。。。记录一下代码(以下是TLE的代码)
代码:
class Solution {public: vector threeSum(vector& nums) { //nums排序 sort(nums.begin(),nums.end()); //哈希存 vector res; unordered_map hmap; int len=nums.size(); for(int i=0;i