15. 3Sum
来源:互联网 发布:apache linux ab 工具 编辑:程序博客网 时间:2024/05/18 00:41
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
Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)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)
code
public class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> rst = new ArrayList<List<Integer>>(); if(nums == null || nums.length < 3) { return rst; } Arrays.sort(nums); for (int i = 0; i < nums.length - 2; i++) { if (i != 0 && nums[i] == nums[i - 1]) { continue; // to skip duplicate numbers; e.g [0,0,0,0] } int left = i + 1; int right = nums.length - 1; while (left < right) { int sum = nums[left] + nums[right] + nums[i]; if (sum == 0) { ArrayList<Integer> tmp = new ArrayList<Integer>(); tmp.add(nums[i]); tmp.add(nums[left]); tmp.add(nums[right]); rst.add(tmp); left++; right--; while (left < right && nums[left] == nums[left - 1]) { // to skip duplicates left++; } while (left < right && nums[right] == nums[right + 1]) { // to skip duplicates right--; } } else if (sum < 0) { left++; } else { right--; } } } return rst; }}
0 0
- 15. 3Sum && 16 sum closet && 18 4sum
- 15. 3Sum 和 18. 4Sum
- 1. Two Sum&15. 3Sum
- LeetCode 15. 3Sum
- LeetCode --- 15. 3Sum
- [Leetcode] 15. 3Sum
- 【LeetCode】15. 3Sum
- 15. 3Sum
- 【leetcode】15. 3sum
- 【leetcode】15. 3Sum
- 15. 3Sum
- [leetcode] 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- leetcode 15. 3Sum
- 【leetcode】【71】Simplify Path
- Quartus中FFT核的使用
- LeetCode 283. Move Zeroes
- 关于“运行在主线程的ContentProvider为什么不会影响主线程”的记录
- 有关工厂模式的运用实例
- 15. 3Sum
- javascript 获取滚动条高度+常用js页面宽度与高度
- Angular页面传参
- Linux-系统运维监控工具-商业监控产品3
- iOS提交后申请加急审核(备份)
- linux中的网络地址结构记录
- OpenCV矩阵运算
- 从相册或相机选择图片
- Gzip压缩数据解压