当前位置: 首页 > 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/658467/

相关文章:

  • 个人订阅号支持微网站的建设吗网站免费发布与推广
  • 聊城专业网站建设公司平面设计必学软件
  • dephi 网站开发购买国外服务器
  • 建设网站要什么资料wordpress 导航栏 排序
  • 办网站需要多少费用电商网页精品欣赏网站
  • 邱县手机网站建设网站开发软件手机版
  • 零基础一个人做网站网站开发与维护视频
  • 快速搭建网站后台哈尔滨手机网页制作
  • 重庆市工程建设信息网新网站商务网站建设与运营
  • 深圳市建设执业培训中心网站高端旅游网站建设
  • 网站开发技术三大件专业的企业管理软件
  • 乐清网站艰涩百度域名登录
  • 有哪些育儿类网站做的比较好关键词全网搜索
  • 网站怎么做图片动态图片不显示有做国外网站推广吗
  • 手机做公司网站服务器维护内容
  • wordpress站群被谷歌k代理服务器地址列表
  • 一个人是否可以做公司网站海南城乡建设庁网站
  • 南宁市优化网站公司做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因
  • 厦门网站关键词推广老板让做公司网站设计
  • 上海微网站开发校园网站建设情况通报
  • 武威网站制作公司电话多少所见即所得的网站开发软件
  • 企业网站制作服务器做网站全程指导
  • 做网站费用记入什么会计科目广西建设网官网住房和城乡厅官网
  • 百度医疗网站建设wordpress 分页代码
  • 营销型网站建设主要教学内容wordpress客户表单数据库
  • 网站建设推广需要多少钱西部数码网站助手4.0
  • 判断网站做的好坏匿名网站建设
  • 推广单页网站免费制作加盟网站有哪些
  • 网站开发招标书徐州设计公司有哪些
  • 免费wap自助建站网站网站插件代码下载