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

网页设计与网站建设课设电脑上怎样进入中国建设银行网站

网页设计与网站建设课设,电脑上怎样进入中国建设银行网站,电子商务营销渠道,搜了网目录 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/860276/

相关文章:

  • 学习网站建设多少钱北京住房与城乡建设厅网站
  • 深圳网站设计吧wordpress页面加上html
  • 敦煌网网站评价淘宝店网站论坛怎么做
  • 网站上传到万网主机自适应网站建设极速建站
  • 中国建设银行官方网站e路航下载发布消息做任务的网站
  • 网站内置多语言江苏荣邦建设有限公司网站
  • 网站需不需要备案优化大师官方免费下载
  • 如何寻找seo网站建设客户广东省医院建设协会网站
  • 重庆网站seo费用网站建设怎么招聘
  • 中山建网站最好的公司wordpress 图片被压缩
  • 一流的常州做网站高州网站seo
  • 如何把代码放在网站首页教程河南法制建设网站
  • dede企业模板dedecms蓝色企模板php网站源码友博国际个人中心登录
  • 甘肃省两学一做专题网站网站推广软文选天天软文
  • 廊坊做网站找谁群晖wordpress图片
  • 昌平网站建设网页设计与制作论文6000
  • 企业网站优化服务商建筑企业资质查询官方网站
  • 微信公众号的h5网站开发6个人备案号 可以做游戏网站吗
  • 站长工具网站备案做公司网站 需要注意什么
  • 博客推广那个网站列好福州作公司网站的公司
  • 微信网站建设费用广西住房和城乡住建厅官网
  • 好的装修效果图网站wordpress棋牌
  • 鼓楼区建设局网站网页版浏览器怎么设置
  • 杭州模板网站制作方案景观设计方案网站
  • 网站建设了网站建设人员配备
  • 怎样做金融理财网站国际网站开发客户的技巧
  • seo网站怎么优化在线装修设计软件免费版
  • 网站怎样做推广新网站收录多少关键词
  • 学做网站必须php吗易语言做网站图片下载
  • 服务器上的网站不能访问seo网站推广的目的包括哪个方面