当前位置: 首页 > wzjs >正文

甘肃温室大棚建设网站网站联盟广告

甘肃温室大棚建设网站,网站联盟广告,网站建设的公司选哪家,网页 代码怎么做网站三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。输…

三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 
满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k]== 0 。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。

输入:整型数组
输出:二元列表
思路:先对数组进行排序,然后循环排序后的数组,再定义双指针,进行移动,关键是对于去重的操作,

class Solution {public List<List<Integer>> threeSum(int[] nums) {//定义返回值的二元列表List<List<Integer>> result = new ArrayList<>();//先对数组nums进行排序Arrays.sort(nums);//当第一个数值大于0,则直接返回if(nums[0] > 0){return result;}//然后进行for循环遍历每一个数组元素for(int i = 0;i < nums.length;i++){//定义双指针int l = i + 1;int r = nums.length - 1;if (i > 0 && nums[i] == nums[i - 1]) {  // 去重acontinue;}//应该在循环中不断变换双指针while(l < r){//判断值与零的大小关系if(nums[i] + nums[l] + nums[r] > 0){//说明右边大了r--;}else if(nums[i] + nums[l] + nums[r] < 0){//说明左边小了l++;}else{//说明等于0result.add(new ArrayList<>(Arrays.asList(nums[i],nums[l],nums[r])));while (r > l && nums[r] == nums[r - 1]) r--;while (r > l && nums[l] == nums[l + 1]) l++;r--; l++;}}}return result;}
}

去重逻辑的思考
其实就是左中右三个数的去重,i,l,r索引所对应的值

  • 对于i的去重应该使用nums[i] == nums[i-1]判断,如果写成
if (nums[i] == nums[i + 1]) { // 去重操作continue;
}

那我们就把 三元组中出现重复元素的情况直接pass掉了。 例如{-1, -1 ,2} 这组数据,当遍历到第一个-1 的时候,判断 下一个也是-1,那这组数据就pass了。
那么应该这么写:

if (i > 0 && nums[i] == nums[i - 1]) {continue;
}

这么写就是当前使用 nums[i],我们判断前一位是不是一样的元素,在看 {-1, -1 ,2} 这组数据,当遍历到 第一个 -1 的时候,只要前一位没有-1,那么 {-1, -1 ,2} 这组数据一样可以收录到 结果集里。

  • 只有在三数之和等于零是才有可能出现重复的情况,所以以下逻辑不合理,并无卵用
while (right > left) {if (nums[i] + nums[left] + nums[right] > 0) {right--;// 去重 rightwhile (left < right && nums[right] == nums[right + 1]) right--;} else if (nums[i] + nums[left] + nums[right] < 0) {left++;// 去重 leftwhile (left < right && nums[left] == nums[left - 1]) left++;} else {}
}
http://www.dtcms.com/wzjs/383694.html

相关文章:

  • 哪个网站可以做照片分享福建百度代理公司
  • 深圳网站设计网站建设哪个好如何做网站平台
  • 小程序 企业网站站长之家的seo综合查询工具
  • 做美国直邮物流网站seo推广培训课程
  • 海珠区做网站的公司百度推广seo怎么学
  • 课程网站建设ppt模板制作网站需要什么技术
  • 网站免费正能量直接进入检察官免费推广软件工具
  • 武汉市人民政府电话优化大师客服
  • 软件系统定制开发百度seo词条优化
  • app门户网站百度竞价代理商
  • wordpress软件站站长网站优化公司
  • 静态网站开发课程相关新闻营销策划经典案例
  • 个人兼职网站建设html网页制作代码
  • 网站不显示域名解析错误怎么办网站seo搜索
  • 武汉网站建设云搜123哪家好互联网运营推广公司
  • 初中生怎样做网站赚钱google谷歌搜索引擎入口
  • 哪个网站可以做结婚证电商运营自学全套教程
  • 做网站租服务器多少钱黑帽seo培训网
  • 架设网站软文推广网
  • 开业时网站可以做哪些活动长尾关键词搜索
  • 淘宝客网站做好了该怎么做哈尔滨最新疫情
  • 网站备案被拒绝汽车行业网站建设
  • 做一个交友网站怎样做需要多少资金百度app登录
  • 阿里云win服务器怎么做网站新媒体运营师证书
  • 论文 网站建设可行性怎样在百度上发布免费广告
  • 微网站建设报价方案模板全球网站流量排名100
  • 国内的c2c网站有哪些网站推广是什么意思
  • 装潢公司网站源码php推广网站最有效办法
  • 网站搭建说明北大青鸟培训机构靠谱吗
  • 南通网站建设推广sem外包