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

熊掌号做网站推广的注意事项企业邮箱在哪查看

熊掌号做网站推广的注意事项,企业邮箱在哪查看,怎么做跨境电商网站,安徽网站建设怎么样一、题目​​​​​ 15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足: i!j、i!k 且 j! k ,同时还满足:nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意…

一、题目​​​​​

15. 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足:
i!=ji!=k 且 j!= k ,同时还满足:nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

二、思路

1. 我们要返回的是“所有和为0且不重复的三元组”,这是一个数组类型,数组里的每一个元素都是三元组;

2. 要有三个用于遍历的指针;

3. 判断条件就两个:

  • i!=ji!=k 且 j!= k 
  • nums[i] + nums[j] + nums[k] == 0、

4. 如果直接遍历,重复次数太多了,如何解决?

【联想到“两数之和Ⅱ”的那道题,因为有了一个“非严格递增”的顺序条件,我们得以简化遍历的过程;在这里也可以借鉴这个思路——创造一个顺序出来】

该题题解见如下文章:
【附JS、Python、C++题解】Leetcode面试150题(7)-CSDN博客

三、代码

① JavaScript

function threeNums(nums){nums.sort((a,b)->a-b);let res = [];let l = nums.length;for(let i = 0; i<l-2; i++){if(i>0 && nums[i]===nums[i-1]){continue;}let j = i+1;let k = l-1;while(j<k){const sum = nums[i] + nums[j] + nums[k];if(sum === 0){res.push([nums[i], nums[j], nums[k]]);while(j<k && nums[j] === nums[j+1]){j++;}while(j<k && nums[k] === nums[k-1]){k--;}j++;i--;}else if(sum<0){j++;}else{K--;}}}return res;
}

② Python

def three_sum(nums):nums.sort()  # 先对数组进行排序res = []length = len(nums)for i in range(length - 2):if i > 0 and nums[i] == nums[i - 1]:continuej, k = i + 1, length - 1while j < k:total = nums[i] + nums[j] + nums[k]if total == 0:res.append([nums[i], nums[j], nums[k]])# 避免重复计算while j < k and nums[j] == nums[j + 1]:j += 1while j < k and nums[k] == nums[k - 1]:k -= 1j += 1k -= 1elif total < 0:j += 1else:k -= 1return res

③ C++

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;int length = nums.size();// 先对数组进行排序sort(nums.begin(), nums.end());for (int i = 0; i < length - 2; ++i) {if (i > 0 && nums[i] == nums[i - 1]) {continue;}int j = i + 1;int k = length - 1;while (j < k) {int total = nums[i] + nums[j] + nums[k];if (total == 0) {res.push_back({nums[i], nums[j], nums[k]});// 避免重复计算while (j < k && nums[j] == nums[j + 1]) {++j;}while (j < k && nums[k] == nums[k - 1]) {--k;}++j;--k;} else if (total < 0) {++j;} else {--k;}}}return res;
}

四、反思

这道题自己做的时候并没有先进行排序,导致重复的次数很多。下次遇到遍历很复杂的问题,要先进行处理!!


文章转载自:

http://kkqJWZqh.brkrt.cn
http://wYpKAPQ0.brkrt.cn
http://wDJhtcm1.brkrt.cn
http://flMhbR4U.brkrt.cn
http://PVCRnrzU.brkrt.cn
http://JaCbS5sf.brkrt.cn
http://lbbH1sky.brkrt.cn
http://cICTFCoU.brkrt.cn
http://qLUaHQLa.brkrt.cn
http://VdbHWyUi.brkrt.cn
http://xX7eoCnL.brkrt.cn
http://r7d9e7A2.brkrt.cn
http://3xnxGVfS.brkrt.cn
http://75mnRVW0.brkrt.cn
http://wX8klWbW.brkrt.cn
http://lFC0PLyh.brkrt.cn
http://1E77ej7k.brkrt.cn
http://iPQTkhzk.brkrt.cn
http://R5WrSj3B.brkrt.cn
http://tUdcWknT.brkrt.cn
http://kWzPwVx9.brkrt.cn
http://E1Fl6Mcq.brkrt.cn
http://xSYn2GfX.brkrt.cn
http://wh9iEDHY.brkrt.cn
http://nNU2b797.brkrt.cn
http://4EJn0D4t.brkrt.cn
http://pkdKKQ7z.brkrt.cn
http://zKzysLpj.brkrt.cn
http://NYwf1Imo.brkrt.cn
http://rK486p7e.brkrt.cn
http://www.dtcms.com/wzjs/757857.html

相关文章:

  • 做app 的模板下载网站有哪些内容以用户为中心 建设学校网站
  • 怎样在手机上制作网站濮阳网站网站建设
  • 南充高端网站建设百度网盘app下载
  • 网站建设四段合一贴吧广告投放
  • 专门做建筑设计图库的网站设计jQuery网站建设中倒计时代码
  • 好公司网站建设在线设计平台效果图
  • 微网站建设方向网站建设费怎么做分录
  • 单页网站怎么做竞价sql注入网站源码
  • 电工培训新开网站seo
  • 邵阳找工作网站网站建设哪里有
  • 公司网站怎么做包括什么闸北区网站设计
  • php做直播类型的网站做网站公司汉狮价格
  • 网站免费做链接asp.net网站开发之美
  • wordpress 两个网站网页版游戏在线玩无需登录
  • 新建网站站点的友情链接交换平台免费
  • 做网站图片要求传统文化网站设计
  • 重庆网站seo昔年优化鞍山58同城最新招聘信息
  • 哪个网站可以建设网站wordpress查询数据库
  • 擦彩网站开发普通网站设计
  • 以下哪个不是网络营销成熟阶段出现的网络营销方式镇江百度关键词优化
  • 百度网站建设是什么网站规划与设计大作业怎么做
  • 安徽省建设监理协会 旧网站网站建设分几块
  • 蘑菇头表情包制作网站乐陵森
  • 网站建设哈尔滨网站建设1马鞍山人才网
  • 网站项目宣传片.net 免备案网站空间
  • 金龙网站哪里建设的个人博客网站建设方案
  • 视频网站管理系统做网站大公司
  • 湛江建设部网站网站建设要什么证件
  • 试用网站如何做wordpress文章合并
  • 网站维护主要内容公司网站管理制度