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

给公司做网站和公众号需要多少钱网站开发php未来发展

给公司做网站和公众号需要多少钱,网站开发php未来发展,wordpress分类目录样式模板,wordpress电话注册题目描述 给定一个整数数组 nums,判断是否存在三个元素 a, b, c,使得 a b c 0?找出所有满足条件且不重复的三元组。 解题思路 核心方法:排序 双指针 排序:首先将数组排序,便于后续去重和双指针操作。…

题目描述

给定一个整数数组 nums,判断是否存在三个元素 a, b, c,使得 a + b + c = 0?找出所有满足条件且不重复的三元组。


解题思路

核心方法:排序 + 双指针

  1. 排序:首先将数组排序,便于后续去重和双指针操作。
  2. 固定第一个数:遍历数组,固定第一个数 a
  3. 双指针找剩余两数:对于固定的 a,使用左指针 left(初始指向 a 的下一个元素)和右指针 right(初始指向数组末尾),寻找满足 a + b + c = 0bc
  4. 去重:在遍历过程中,跳过重复元素以避免重复的三元组。

关键步骤详解

1. 排序的作用

排序后,相同的元素会相邻,便于后续跳过重复元素。例如,输入 [-1,0,1,2,-1,-4] 排序后为 [-4,-1,-1,0,1,2],相邻的 -1 可以方便地通过条件判断跳过。

2. 固定第一个数 a

遍历数组时,固定 a = nums[i]。若 a > 0,由于数组已排序,后面的数均为正数,无法满足三数之和为0,直接终止循环。

3. 双指针寻找 bc
  • 双指针初始化left = i + 1right = nums.length - 1
  • 调整指针
    • a + nums[left] + nums[right] < 0:需要增大总和,左指针右移。
    • a + nums[left] + nums[right] > 0:需要减小总和,右指针左移。
    • 若等于0:记录结果,并移动指针跳过重复元素。
4. 去重逻辑
  • a 去重:若当前 nums[i] 与前一个数相同(i > 0nums[i] == nums[i-1]),跳过以避免重复。
  • bc 去重:找到有效三元组后,跳过所有与当前 leftright 相同的元素。

代码实现

public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);List<List<Integer>> result = new ArrayList<>();int n = nums.length;for (int i = 0; i < n; i++) {if (nums[i] > 0) break; // 提前终止if (i > 0 && nums[i] == nums[i-1]) continue; // 对a去重int left = i + 1, right = n - 1;while (left < right) {int sum = nums[i] + nums[left] + nums[right];if (sum < 0) left++;else if (sum > 0) right--;else {result.add(Arrays.asList(nums[i], nums[left], nums[right]));// 对b和c去重while (left < right && nums[left] == nums[left+1]) left++;while (left < right && nums[right] == nums[right-1]) right--;left++;right--;}}}return result;
}

力扣通过截图

在这里插入图片描述


复杂度分析

  • 时间复杂度:O(n²)。排序 O(n log n),外层循环 O(n),内层双指针 O(n),总体 O(n²)。
  • 空间复杂度:O(1)。忽略结果存储空间,仅用常量空间。

示例解析

以输入 nums = [-1,0,1,2,-1,-4] 为例:

  1. 排序后数组[-4, -1, -1, 0, 1, 2]
  2. 固定 a = -4:双指针范围为 [-1, 2],无法找到和为4的组合。
  3. 固定 a = -1(第一个 -1):
    • left 指向第二个 -1right 指向 2,和为0,记录 [-1, -1, 2]
    • 调整指针跳过重复元素,继续找到 [-1, 0, 1]
  4. 后续元素去重:跳过重复的 a,最终得到结果。

总结

通过排序预处理,结合双指针高效寻找两数之和,同时在每一步跳过重复元素,确保结果唯一。这种方法巧妙地将时间复杂度降至 O(n²),是解决此类问题的经典思路。


文章转载自:

http://RCb8rhgb.thwcg.cn
http://ZlOplGwC.thwcg.cn
http://d1xjVDK1.thwcg.cn
http://JJB9xFvK.thwcg.cn
http://wueQovYW.thwcg.cn
http://LekOSeXY.thwcg.cn
http://GMDafbAY.thwcg.cn
http://gcm2LyOR.thwcg.cn
http://37VK3buu.thwcg.cn
http://zAa1ulvR.thwcg.cn
http://nfgL7nYE.thwcg.cn
http://0WLaAJTR.thwcg.cn
http://OK9aaDzM.thwcg.cn
http://Znj5xgSd.thwcg.cn
http://Z2vKl69x.thwcg.cn
http://Hysvvhsr.thwcg.cn
http://rwcUAvvd.thwcg.cn
http://Kkvni3l2.thwcg.cn
http://Pe7N8tZW.thwcg.cn
http://CdBcLGvx.thwcg.cn
http://CyiNqQwa.thwcg.cn
http://DECPwQYI.thwcg.cn
http://eR6TWxhw.thwcg.cn
http://z52YofEv.thwcg.cn
http://gOyepb2P.thwcg.cn
http://Icioker8.thwcg.cn
http://ulPRnh3Y.thwcg.cn
http://xPYwzMGB.thwcg.cn
http://sQaWWUlk.thwcg.cn
http://YFJDmvch.thwcg.cn
http://www.dtcms.com/wzjs/631431.html

相关文章:

  • 教做月嫂的网站有吗绍兴聚氨酯制作公司
  • 如何做网站挂qqwordpress收录差劲啊
  • 手赚网站哪里可以做做现货需要关注的网站
  • 桂林最新情况最新数据温州seo平台
  • 学校网站制作html衡阳网站优化教程
  • 企业网站建设既可以外包给专业的网站建设服务公司乐山网站公众号建设
  • 网站的备案流程自己做网站要多久
  • 南山区网站建设公司电商app开发
  • 开发的某网站建设公司网站源码友情手机站
  • 公众号第三方网站开发免费的行情网站app代码
  • 学校网站建设运行简介做民宿推广都有哪些网站
  • 什么是网站开发时间进度表如何知道网站是否备案过
  • 企业网站制作方法网站的外链是怎么做的
  • 网站的数据库有什么用做网站程序先从哪一步开始
  • 建设银行网站登录没反应抓取的网站如何做seo
  • 金堂做网站的公司浏览器入口
  • 网站开发 图片大学生做推送的网站
  • 智能网站建设服务开源手机网站cms
  • c 做彩票网站南京江北新区
  • 家具公司网页设计宁波优化seo
  • 艺术网站建设模板网站维护 北京
  • 购物网站seo网站建设什么软件
  • 自己做网站地址怎么查看网站的点击率
  • 网站图片展示方式有哪些logo设计公司 北京
  • 攻略网站的建设金属材料网站建设
  • 专门装修的网都有什么网网站网站建设洽谈
  • 设计感十足的网站福田庆三鞠婧祎
  • 做网站运营难吗网页游戏推荐排行
  • 国外主流媒体网站wordpress 页面添加图标
  • 做网站的s标的软件网页设计实例