博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode15——3Sum
阅读量:4596 次
发布时间:2019-06-09

本文共 1484 字,大约阅读时间需要 4 分钟。

数组中找三个数和为0的结果集  1 // 解法一:先排序 然后固定一个值 然后用求两个数的和的方式 2     public static List
> threeSum(int[] nums) { 3 List
> res = new ArrayList<>(); 4 if (nums.length < 3) { 5 return res; 6 } 7 Arrays.sort(nums); 8 // 遍历到倒数第三个就可以了 9 for (int i = 0; i < nums.length - 2; i++) {10 // i去重复11 if (i != 0 && nums[i] == nums[i - 1])12 continue;13 int j = i + 1;14 int k = nums.length - 1;15 while (j < k) {16 if (nums[i] + nums[j] + nums[k] == 0) {17 List
list = new ArrayList<>();18 list.add(nums[i]);19 list.add(nums[j]);20 list.add(nums[k]);21 res.add(list);22 j++;23 k--;24 // 去重复25 while (j < k && nums[j - 1] == nums[j]) {26 j++;27 }28 while (j < k && nums[k] == nums[k + 1]) {29 k--;30 }31 } else if (nums[i] + nums[j] + nums[k] < 0) {32 j++;33 } else {34 k--;35 }36 }37 }38 return res;39 }

 

转载于:https://www.cnblogs.com/ntbww93/p/9096969.html

你可能感兴趣的文章
图解C#的值类型,引用类型,栈,堆,ref,out
查看>>
spring5.0版本-AOP-如何实现拦截器链式调用(责任链模式)
查看>>
dht11 temperature & humidity sensor v2
查看>>
selenium 启动 IE11
查看>>
习题6.6
查看>>
系统分析与设计第三次作业
查看>>
Redis——非阻塞IO和队列
查看>>
iPad最值得期待的切实改进构想
查看>>
(转载)ERROR :“dereferencing pointer to incomplete type”是什么错误?
查看>>
jstack 堆栈日志分析
查看>>
Hystrix的一些应用和想法
查看>>
C#操作Word文件
查看>>
hihocoder1323 回文字符串
查看>>
MD5加密
查看>>
搜索评价指标——NDCG
查看>>
浅复制与深复制
查看>>
codeReview
查看>>
内存泄漏 tensorflow
查看>>
javascript 体验倒计时:距离国庆还有多长时间
查看>>
centos 7 修改ssh登录端口
查看>>