Problem: 15. 三数之和
文章目录
- 思路
- Code
思路
👨🏫 参考
Code
⏰ 时间复杂度: O ( n 2 ) O(n^2) O(n2)
🌎 空间复杂度: O ( 1 ) O(1) O(1)
class Solution { public List
- > threeSum(int[] nums)
{
List
- > res = new ArrayList<>();
int len = nums.length;
if (len < 3)
return res;
Arrays.sort(nums);// 升序排序
for (int i = 0; i < len; i++)// i选一个数(三个数中最小的数)
{
if (nums[i] > 0)// 最小数已经 > 0,和不可能 == 0
break;
// 当前数和前一个数相同,去重
if (i > 0 && nums[i] == nums[i - 1])
continue;
int l = i + 1;// 选取第二个数(中间的数)
int r = len - 1;// 选取第三个数(最大的数)
while (l < r)
{
int sum = nums[i] + nums[l] + nums[r];
if (sum == 0)
{
res.add(Arrays.asList(nums[i], nums[l], nums[r]));
// 去重 l 和 r 的数
// 跳过重复的值,避免重复解
// 例:[0,-2,-2,-1,1,2,2] 中的 -2 -2 2 2 就需要去重
while (l < r && nums[l] == nums[l + 1])
l++;
while (l < r && nums[r] == nums[r - 1])
r--;
// 走到这,l 是连续相同段的最后一个,r 是连续相同段的第一个
// 再跳一次,把 nums[l] nums[r] 跳过
l++;
r--;
} else if (sum < 0)// 左边的值 调大一点
l++;
else if (sum > 0)// 右边的值 调小一点
r--;
}
}
return res;
}
}
猜你喜欢
- 17天前(大理悦云雅阁酒店电话)雅阁酒店集团|端午佳节礼遇,大理悦云雅阁度假酒店
- 17天前(2020海丝之路文化博览会)2023海丝之路文化和旅游博览会开幕
- 17天前(万达酒店及度假村连续五年荣获“中国饭店集团60强”)万达酒店及度假村连续五年荣获“中国饭店集团60强”
- 17天前(临沂 凯悦)临沂第一家凯悦嘉轩酒店开幕迎宾
- 17天前(四川推进世界重要旅游目的地建设工作)四川推进世界重要旅游目的地建设
- 17天前(天津四季酒店开业时间)天津四季酒店邀你开启灿烂暑假
- 17天前(万豪旅享家活动2021)精彩上新,漫享夏日----跟随万豪旅享家新开酒店解锁夏日旅行灵感
- 17天前(内蒙古冬季旅游攻略)内蒙古冬日奇遇:携程租车带你策马踏雪
- 17天前(锦江 iu)锦江荟APP原生鸿蒙版正式上线打造全场景旅行服务新体验
- 17天前(海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章