leetcode 15 3Sum
来源:互联网 发布:淘宝店铺运营思路 编辑:程序博客网 时间:2024/06/01 07:19
K Sum问题,第一次刷,没仔细想,超时超时,看了网上的思路后实现了,但是还是超时,在重复数据去掉的地方使用遍历出现超时,于是抄袭了网上的思路,惭愧
vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> ans_vec;int length = nums.size();if(length<3)return ans_vec;int zero_position = length;sort(nums.begin(),nums.end());for(vector<int>::iterator it = nums.begin();it!=nums.end();it++){if(*it == 0)zero_position = it-nums.begin();}for(vector<int>::iterator it = nums.begin();it!=nums.begin()+zero_position;it++){vector<int>::iterator it_s = it+1;vector<int>::iterator it_end = nums.end()-1;bool flag = false;if (it > nums.begin() && *it == *(it-1)) //去重,如果没有这步,依然会出现重复数据continue;while (it_s<it_end) { int plus =*it_s + *it_end; if (plus == -*it) { vector<int> c_ans;c_ans.push_back(*it); c_ans.push_back(*it_s); c_ans.push_back(*it_end);ans_vec.push_back(c_ans);while (it_s < it_end && *it_s == *(it_s+1))//去重it_s++;while (it_s < it_end && *it_end == *(it_end-1)) //去重it_end--;it_s++, it_end--; } else if (plus < -*it) it_s++; else it_end--; } }return ans_vec;}
0 0
- Leetcode 15 3Sum
- LeetCode 15: 3Sum
- leetcode 15 3Sum
- [leetcode 15] 3Sum
- Leetcode【15】:3Sum
- [leetcode 15] 3Sum
- [Leetcode] 15 - 3Sum
- leetcode.15-----------3Sum
- leetcode 15 3Sum
- leetcode-15 3Sum
- 3Sum - LeetCode 15
- Leetcode #15 3 Sum
- LeetCode---(15) 3 sum
- LeetCode 15 - 3Sum
- leetcode-15 3sum
- leetcode 15 -- 3Sum
- Leetcode[15]-3Sum
- LeetCode 15: 3 Sum
- hdu5879Cure(java解法)
- 关于多线程情况下的生产者消费者模式的一些记录
- [hdu 5898 odd-even number] 数位DP
- Android使用Application总结
- Codeforces 500B New Year Permutation(更换位置,找最小字典数)
- leetcode 15 3Sum
- Arch linux (虚拟机)安装教程
- HDU 5898 odd-even number (2016亚洲区沈阳站网络赛 )
- Permutations I , II
- Asp图片大小处理及AspJpeg失效设置
- 通过反射获取泛型类的类型
- 【java】面向对象——封装性、继承性和多态性
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
- 8CollapsingToolbarLayout源码分析