三个数之和(3sum)
来源:互联网 发布:网络攻防实验 编辑:程序博客网 时间:2024/04/27 15:11
https://leetcode.com/problems/3sum/description/
题目描述:给一个含n个整数的数组,找出不重复的所有的三个数相减为0的三元组
For example, given array S = [-1, 0, 1, 2, -1, -4],A solution set is:[ [-1, 0, 1], [-1, -1, 2]]
vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> result; sort(nums.begin(),nums.end()); //对容器进行从小到大排序 for(int i=0;i<nums.size();i++) { //找taeget if(nums[i]>0||nums[nums.size()-1]<0) break; //i后面的都是正,三个相加肯定就不会为0 if(i>0&&nums[i]==nums[i-1]) continue ;//防止重复 int target = 0-nums[i]; //转化为判断两个数的和是否等于常数target int l=i+1,r=nums.size()-1; //采用从两端向中间, while(l<r){ //相等的情况,进栈,并对l,r去重 if(nums[l]+nums[r]==target){ result.push_back({nums[i],nums[l],nums[r]}); while(l<r&&nums[l]==nums[l+1]) l++; while(l<r&&nums[r]==nums[r-1]) r--; l++; r--; }else if(nums[l]+nums[r]<target) l++; else r--; } } return result;}
阅读全文
0 0
- 三个数之和(3sum)
- 3Sum 三个数之和
- 3sum 三个数之和为0
- 3Sum(数组中三个数之和为零)
- LeetCode 15. 3Sum 三个正数之和
- [LeetCode]—3Sum Closest 求数组中三个数之和最接近给定target的组合
- 3Sum Closest从数列中找到三个数之和最接近给定值
- 算法三个数之和
- LeetCode 15. 3Sum(三数之和)
- Leetcode: 15. 3Sum 三数之和
- leetcode-3sum 三数之和
- [LeetCode] 3Sum 三数之和 Python
- Two Sum(两数之和)
- LeetCode-Two Sum(两数之和)
- 1、Two Sum(两数之和)
- LeetCode | 3Sum(三个数的和等于0)
- LeetCode OJ 之 3Sum (三个数的和)
- 4Sum 四数之和
- 欢迎使用CSDN-markdown编辑器
- Qt中使用QAxObject的dynamicCall和querySubObject函数操作SolidWorks的方法
- linux命令:ls
- 基于贝叶斯算法文本分析之新闻分类
- java 自增自减运算
- 三个数之和(3sum)
- 安卓开发一些常用工具的设置以及注意点
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
- Python垃圾回收(gc)拖累了程序执行性能?
- linux命令——netstat
- 修复.NET中通过HttpWebRequest 中GET 方法丢失Cookie的bug
- ThreadLocal技术
- spring 的父子容器解析
- 协同过滤算法实现