Leetcode_3Sum
来源:互联网 发布:如何优化淘宝排名 编辑:程序博客网 时间:2024/06/05 08:49
Given an array S of n integers, are there elements a,b,c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
Note: The solution set must not contain duplicate triplets.
For example, given array S = [-1, 0, 1, 2, -1, -4],
A solution set is:
[
[-1, 0, 1],
[-1, -1, 2]
]
1、暴力求解,三层循环。
2、将3元素求和问题转化为2元素求和,类似two_sum。先排序,再求解。
//3Sum class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; sort(nums.begin(), nums.end()); for(int i = 0; i < nums.size(); ++i) { if(nums[i] > 0)break; if(i > 0 && nums[i] == nums[i-1]) continue; int target = 0 - nums[i]; int k = i + 1, j = nums.size()-1; while(k < j) { if(nums[k] + nums[j] == target) { res.push_back({nums[i], nums[k], nums[j]}); while(k < j && nums[k] == nums[k+1]) { ++k; } while(k < j && nums[j] == nums[j-1]) { --j; } ++k; --j; } else if(nums[k] + nums[j] < target) { ++k; } else --j; } } return res; }};
参考:http://www.cnblogs.com/grandyang/p/4481576.html
阅读全文
0 0
- *Leetcode_3sum
- LeetCode_3Sum
- leetCode_3Sum
- LeetCode_3Sum
- Leetcode_3Sum
- Leetcode_3sum-closest
- LeetCode_3Sum Closest
- leetcode_3sum closet
- Leetcode_3Sum Closest
- 人工智能:用爬山法、模拟退火算法实现八皇后和八数码问题
- web前端开发中关于面向对象(一)
- 人工神经网络(五)梯度下降法
- 从安装Ubuntu一直到TensorFlow的安装
- 小程序---计算器
- Leetcode_3Sum
- 设计模式之适配器模式
- golang tcp粘包处理
- 最大众数问题
- webpack配置的entry和output new
- 扑克牌 BZOJ
- SpringMVC返回视图
- 阻塞队列LinkedBlockingQueue源码分析
- Android笔记