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

推广网站刷排名外链发布

推广网站刷排名,外链发布,网站不备案可以么,深圳专业做公司网站1.题目描述 2.思路 思路1: 补充: break 和 continue 是 Java(以及其他编程语言)中控制循环流程的重要关键字 思路2: 先判断三数之和 sum 是正的、负的还是等于 0; 只有当 sum 0 时才加入结果&#x…

1.题目描述

在这里插入图片描述

2.思路

思路1:
在这里插入图片描述
补充:
break 和 continue 是 Java(以及其他编程语言)中控制循环流程的重要关键字
在这里插入图片描述
在这里插入图片描述

思路2:
先判断三数之和 sum 是正的、负的还是等于 0;

只有当 sum == 0 时才加入结果;

然后再分别跳过重复的 left 和 right。

3.代码实现

方法一:不推荐,超出时间限制。
时间复杂度是 O(n²),空间复杂度最坏是 O(n²),虽然逻辑清晰,但是性能比不上双指针法,特别是在数据量大的时候容易 超时或内存爆炸。

class Solution {public List<List<Integer>> threeSum(int[] nums) {int left=0;int right=nums.length-1;Set<List<Integer>> result=new HashSet<>();//结果集合,保存的是三元组(一个列表),不是整数Arrays.sort(nums);//对数组进行按升序排序for(int i=0;i<nums.length-2;i++)//i<nums.length-2倒数第三个元素{ Set<Integer> seen=new HashSet<>();int  target=-nums[i];             // 在剩下的部分找两个数,使它们的和等于 -nums[i]for(int j=i+1;j<=nums.length-1;j++ ){int twochar=target-nums[j];if(seen.contains(twochar)){result.add(Arrays.asList(nums[i],nums[j],twochar));}seen.add(nums[j]); // 加入到哈希表,供后续查找}}return new ArrayList<>(result);}
}

方法二:双指针,时间复杂度
排序一次 O(n log n)
双指针部分是 O(n²),但跳过重复元素大幅减少不必要的操作

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);  // 排序先for (int i = 0; i < nums.length - 2; i++) {// 跳过重复的 nums[i]if (i > 0 && nums[i] == nums[i - 1]) continue;int left = i + 1;int right = nums.length - 1;while (left < right) {int sum = nums[i] + nums[left] + nums[right];if (sum == 0) {res.add(Arrays.asList(nums[i], nums[left], nums[right]));// 跳过重复的 leftwhile (left < right && nums[left] == nums[left + 1]) left++;// 跳过重复的 rightwhile (left < right && nums[right] == nums[right - 1]) right--;left++;right--;} else if (sum < 0) {left++;  // 增加和} else {right--; // 减小和}}}return res;}
}

方法三:

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result=new ArrayList<>();Arrays.sort(nums);//数组按升序排序Set<List<Integer>> set = new HashSet<>();for(int i=0;i<nums.length-2;i++)//取倒数第三个数{//跳过重复的nums[i]if(i>0&&nums[i]==nums[i-1])continue;int left=i+1;//相对顺序 nums[i]、nums[left]、nums[right]int right=nums.length-1;while(left<right){  int sum=nums[i]+nums[left]+nums[right];if(sum==0){//result.add(Arrays.asList(nums[i],nums[right],nums[left]));List<Integer> triplet=Arrays.asList(nums[i],nums[right],nums[left]);set.add(triplet);// 跳过重复的 left// while(left<right&&nums[left]==nums[left+1])// {left++;}// // 跳过重复的 right// while(left<right&&nums[right]==nums[right-1])// {right--;}left++;right--;}else if(sum<0){left++;}else{right--;// 和太大,right左移}}}// return result;return new ArrayList<>(set);}
}
http://www.dtcms.com/wzjs/215670.html

相关文章:

  • 温岭市建设工程质量安全网站seo优缺点
  • 网站优化推广软件seo课程培训入门
  • wordpress大型站点seo的全称是什么
  • .net 企业网站源码电商平台怎么注册
  • 网站改版要重新备案吗永久免费linux服务器
  • 济南做设计公司网站竞价托管收费标准
  • 网站建设有什么职位2022年度最火关键词
  • 施工企业奖惩制度范本seo与sem的关系
  • .net招聘网站怎么做超级外链工具源码
  • 网站搜索出来有图片免费个人网站申请
  • 制作网站程序关键词优化公司如何选择
  • 济南网站开发培训班网络营销方案策划书
  • 营销型网站四大功能郑州网站建设哪家好
  • 微信网站什么做的阳江网站建设
  • 上海专业做网站公司有哪些丈哥seo博客工具
  • 群晖wordpress固定链接404长沙网站推广seo
  • 网站建设费用模板新浪博客
  • 新手学做网站从哪里开始济南百度公司
  • 响应式 购物网站模板下载新网站排名优化怎么做
  • 哪里有网站建设搜狗网址
  • 中考网络应用服务平台官网seo关键词排名优化手机
  • 网站哪家公司做得好互联网营销师报名官网
  • 长春火车站是哪个区百度域名提交收录网址
  • 什么是网站开发设计与实现百度搜索优化软件
  • 网页制作的网站建设搜索seo
  • 如何将一台电脑做网站空间手机百度2020
  • 如何做正规电影网站seo技术培训东莞
  • 哈尔滨网站建设市场简述seo的概念
  • 网站推广费计入什么科目外链平台有哪些
  • wordpress加输入框seoul是什么意思