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

自己做网站卖仿货江苏住房和城乡建设厅官方网站6

自己做网站卖仿货,江苏住房和城乡建设厅官方网站6,威海做网站whhl,做网站销售需要注意的目录 LeetCode之路——15. 三数之和 分析: 官方题解: LeetCode之路——15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nu…

目录

LeetCode之路——15. 三数之和

分析:

官方题解:


LeetCode之路——15. 三数之和

给你一个整数数组 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] 。
注意,输出的顺序和三元组的顺序并不重要。

示例 2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

  • 3 <= nums.length <= 3000

  • -105 <= nums[i] <= 105

分析:

借助1. 两数之和的思路,可以让nums[i] =a去遍历数组作为target。同时nums[i+1] =b继续遍历数组,找到nums[j]满足 a + b + nums[j] =0.

1.需要注意元素组去重。

2.需要注意数组边界。

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();if (nums.length < 3) return res;Arrays.sort(nums); // 递增顺序for (int i = 0; i < nums.length - 2; i++) {if (nums[i] > 0) break;int first = nums[i]; // 取得a的值if (i > 0 && nums[i] == nums[i - 1]) continue; // 排序后,需要保证不重复Set<Integer> set = new HashSet<>();for (int j = i + 1; j < nums.length; j++) {int second = nums[j]; // 取得b的值int third = - (first + second);if (set.contains(third)) {res.add(new ArrayList<>(Arrays.asList(first,second,third)));while(j < nums.length - 1 && nums[j] == nums[j + 1]) j++;}set.add(second);}}return res;}
}
  • 时间复杂度:O(N^2)

  • 空间复杂度:O(N)

官方题解:
class Solution {public List<List<Integer>> threeSum(int[] nums) {int n = nums.length;Arrays.sort(nums);List<List<Integer>> ans = new ArrayList<List<Integer>>();// 枚举 afor (int first = 0; first < n; ++first) {// 需要和上一次枚举的数不相同if (first > 0 && nums[first] == nums[first - 1]) {continue;}// c 对应的指针初始指向数组的最右端int third = n - 1;int target = -nums[first];// 枚举 bfor (int second = first + 1; second < n; ++second) {// 需要和上一次枚举的数不相同if (second > first + 1 && nums[second] == nums[second - 1]) {continue;}// 需要保证 b 的指针在 c 的指针的左侧while (second < third && nums[second] + nums[third] > target) {--third;}// 如果指针重合,随着 b 后续的增加// 就不会有满足 a+b+c=0 并且 b<c 的 c 了,可以退出循环if (second == third) {break;}if (nums[second] + nums[third] == target) {List<Integer> list = new ArrayList<Integer>();list.add(nums[first]);list.add(nums[second]);list.add(nums[third]);ans.add(list);}}}return ans;}
}
​
作者:力扣官方题解
链接:https://leetcode.cn/problems/3sum/solutions/284681/san-shu-zhi-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 时间复杂度:O(N^2)

  • 空间复杂度:O(N)

http://www.yayakq.cn/news/905418/

相关文章:

  • 做网站Linuxdw网站根目录怎么做
  • 云主机 小型网站广州网站开发方案
  • 自助建站教程泰州市住房和城乡建设局网站
  • com后缀的网站网络营销的主要推广方式
  • 安徽徐州网站建设公司个人博客网站制作代码
  • 网站域名账号平顶山做网站多少钱
  • 西海岸新区城市建设局网站外贸cms 网站
  • 本地电脑做网站服务器网站语言编程
  • 湛江市企业网站建设哪家好wordpress升级方法
  • 网站建设 通知自助建站系统哪个最好用
  • 宁夏网站开发设计说明书dw如何发布网页
  • 怎么开彩票网站做站长南通优普营销网站建设
  • 自己做配图的网站万网x3 wordpress 数据库
  • 电子商务网站建设实验总结高端手机网站 制作公司
  • 新源网站建设wordpress表格放在哪里
  • 商城网站建设相关费用什么是网络营销中最古老的一种但也是目前应用最广泛的
  • 手机版网站建设方案安装wordpress要数据库
  • 网站开发课程的建议个人能网站建设
  • 东莞网站推广策划活动网站推广中h1标签的重要性
  • 营销型网站跟云网站网站降权查下
  • 怎么做云购网站吗百度贴吧网页入口
  • 上海 教育网站建设北京市朝阳区最新消息
  • 学校资源网站建设方案企业网站的建设包括哪些
  • 如何在工信部网站查询icpipwordpress破解主题教程
  • 装饰公司怎么做微网站东营网站建设培训学校
  • 黄山网站建设jidela无法打开wordpress网页
  • 高端网站建设公司的问题seo搜索优化公司
  • 巴中做网站 微信开发小程序导航wordpress
  • 科技通信网站模板下载品牌策划公司怎么选
  • 申请网站建设经费的报告网游开发公司