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

辉县网站建设关键词简谱

辉县网站建设,关键词简谱,dt网站设计,做网站国内阿里云虚拟主机多少钱LeetCode 15. 三数之和 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c 使得 a b c 0?请你找出所有和为 0 且不重复的三元组。 注意: 答案中的三元组可以按任意顺序组织。在 n…

LeetCode 15. 三数之和

题目描述

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 abc 使得 a + b + c = 0?请你找出所有和为 0 且不重复的三元组。

注意:

  • 答案中的三元组可以按任意顺序组织。
  • nums 中,除了同一个三元组中的元素可以重复外,不可以有重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]

示例 2:

输入:nums = []
输出:[]

示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]

Java 实现解法

方法一:排序 + 双指针
class Solution {public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums); // 首先对数组进行排序List<List<Integer>> result = new ArrayList<>();for (int i = 0; i < nums.length - 2; i++) {if (nums[i] > 0) break; // 如果当前数字大于0,则后面的数字之和一定大于0if (i > 0 && nums[i] == nums[i - 1]) continue; // 跳过重复的数字int left = i + 1, right = nums.length - 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]));while (left < right && nums[left] == nums[left + 1]) left++; // 跳过重复的数字while (left < right && nums[right] == nums[right - 1]) right--; // 跳过重复的数字left++;right--;}}}return result;}
}

解题思路

  • 排序:首先对数组进行排序,这样可以通过一次遍历来找到所有可能的三元组,并且可以方便地跳过重复的解。
  • 固定第一个数:遍历数组,对于每个元素 nums[i],我们尝试找到两个其他元素,使得它们与 nums[i] 的和为 0
  • 双指针:对于每个 nums[i],我们使用两个指针 leftright 分别指向 i + 1nums.length - 1。这样,我们可以在这个范围内寻找和为 -nums[i] 的两个数。
  • 跳过重复解:如果在数组中找到了相同的数字,跳过它们以避免重复的三元组。
  • 更新指针:如果三数之和小于 0,则移动 left 指针;如果大于 0,则移动 right 指针;如果等于 0,则找到了一个解,并更新指针跳过重复的数字。

这种方法的时间复杂度是 O(n^2),其中 n 是数组 nums 的长度。因为我们对数组进行了排序,然后进行了两层嵌套循环。空间复杂度是 O(1),除了输入数组和输出列表外,我们没有使用额外的空间。

注:来源leetcode网站

http://www.hkea.cn/news/643431/

相关文章:

  • 自己做网站平台企业网站优化价格
  • 淘宝网网站建设的需求分析百度会员登录入口
  • 建网站的专业公司推广网站多少钱
  • 网站不去公安局备案自己怎么搭建网站
  • 外贸网站建设入门深圳网络推广哪家
  • 网站模板资源公司网站推广
  • 广东省建设教育协会官方网站首页html简单网页代码
  • 个人网站意义阿里指数官网最新版本
  • 网站开发方式有哪四种搜索引擎优化课程总结
  • 申请做网站、论坛版主app推广接单
  • 青海网站建设广州seo优化推广
  • 物流公司网站制作模板上海网站关键词排名
  • 广西建设人才网搜索引擎优化的目标
  • 比汉斯设计网站素材图片搜索识图入口
  • php网站架设教程英雄联盟韩国
  • 做毕设好的网站百度客服电话24小时
  • 上海手机网站建设电话咨询seo综合查询系统
  • wordpress 4.6 中文版沈阳seo
  • 文件管理软件天津搜索引擎优化
  • 九亭网站建设全国疫情高峰时间表最新
  • 青岛网站建设公司武汉seo收费
  • mvc网站建设的实验报告怎么做优化
  • 有官网建手机网站千锋教育培训多少钱费用
  • b2c交易模式的网站有哪些百度营销客户端
  • flash 学习网站重庆网站seo多少钱
  • 年终总结ppt模板免费下载网站小红书seo排名规则
  • 自己架设网站口碑营销的产品有哪些
  • 湖北省网站备案最快几天天津百度推广排名优化
  • app在线开发制作平台seo网络优化前景怎么样
  • 商务网站的基本情况网站建设工作总结