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

17网站一起做网店潮汕衡阳有实力seo优化

17网站一起做网店潮汕,衡阳有实力seo优化,网站海报是怎么做的,seo网站推广方案给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1…

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != kj != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

堆排序+双指针

class Solution {public List<List<Integer>> threeSum(int[] nums) {heapSort(nums); List<List<Integer>> ans = new ArrayList<List<Integer>>();int length = nums.length;for(int i = 0;i < length;i++){if(i > 0 && nums[i] == nums[i-1]){continue;}int k = length - 1;for(int j = i + 1;j < length;j++){if(j > i + 1 && nums[j] == nums[j-1]){continue;}while(k > j && nums[k] + nums[j] > -nums[i]){k--;}if(k == j){break;}if(nums[i] + nums[k] + nums[j] == 0){List<Integer> list = new ArrayList<Integer>();list.add(nums[i]);list.add(nums[j]);list.add(nums[k]);ans.add(list);}}}return ans;}public static void heapSort(int[] nums){int length = nums.length;for(int i = length / 2 - 1;i >= 0;i--){my_Sort(nums,i,length);}for(int i = length - 1;i >= 0;i--){int temp = nums[0];nums[0] = nums[i];nums[i] = temp;my_Sort(nums, 0, i);}}public static void my_Sort(int[] nums,int parent,int length){int child = 2*parent + 1;int temp = nums[parent];while(child < length){if(child + 1 < length && nums[child + 1] > nums[child]){child++;}if(temp >= nums[child]){break;}nums[parent] = nums[child];parent = child;child = 2*parent + 1;}nums[parent] = temp;}
}
  1. 首先调用heapSort方法对输入数组nums进行堆排序。
  2. 创建一个空的列表ans用于存储结果。
  3. 遍历排序后的数组,对于每个元素nums[i],如果与前一个元素相同则跳过,避免重复解。
  4. 设置两个指针jk,其中ji+1开始遍历,k从数组末尾开始向前移动。
  5. 如果j与前一个元素相同则跳过,避免重复解。
  6. 在循环中,当nums[k] + nums[j] > -nums[i]时,将k向前移动一位,缩小搜索范围。
  7. 如果k == j,说明没有找到满足条件的三元组,跳出内层循环。
  8. 如果nums[i] + nums[k] + nums[j] == 0,说明找到了一组满足条件的三元组,将其添加到结果列表ans中。
  9. 最后返回结果列表ans

heapsort堆排序部分的实现使用了递归的方式,首先构建大顶堆,然后将堆顶元素与最后一个元素交换,再调整剩余元素形成新的大顶堆,重复这个过程直到整个数组有序。

http://www.tj-hxxt.cn/news/92991.html

相关文章:

  • 网页紧急升级自动跳转通知360优化大师安卓手机版下载安装
  • 南宁网站设计公司做销售最挣钱的10个行业
  • 制作旅游网站google谷歌
  • 网站建设空间使用标准百度关键词查询排名
  • 中小型电子商务网站有哪些亚马逊关键词优化软件
  • 企业安全文化宣传标语seo外包杭州
  • 欧洲外贸服务器日照网站优化公司
  • 静态网站开发环境专业网络推广软件
  • 政府投诉建议邮箱网站源码下载百度竞价推广方案的制定
  • 有一个箭头的做网站的软件googleseo优化
  • 做线下极限运动的网站电商运营去哪里学比较好
  • wordpress架设系统东莞seo推广机构帖子
  • 动易网站迁移个人怎么接外贸订单
  • 私人做网站有什么用腾讯云服务器
  • 网站开发和web女生学电子商务后悔了
  • 仿站小工具怎么用百度快照投诉中心人工电话
  • 定制微信怎么做湛江seo网站管理
  • 手机如果做网站贵阳网络推广外包
  • 济南一哥网站建设公司我赢网客服系统
  • 书店如何做网站长沙关键词优化新行情报价
  • 吐鲁番做网站b站推广网站2024mmm
  • 国内推广搜索引擎优化常用方法
  • 公司网站建设工作免费推广网站平台
  • wordpress做视频播放网站属性词 关键词 核心词
  • 企业网站建设 电脑配置国际新闻最新消息战争
  • 东莞大型企业网站建设国外免费网站建设
  • 织梦摄影网站模板公司官网搭建
  • 建一个交易网站需要多少钱店铺引流的30种方法
  • 网页上做网会员网站备案怎么写网页制作接单平台
  • 临河做网站互联网营销案例