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

南通经济开发区城乡建设局网站深圳白帽优化

南通经济开发区城乡建设局网站,深圳白帽优化,多个织梦dedecms网站怎么做站群,留学网站 模板目录 题目题目要求算法解法算法一: 排序 暴力枚举 set去重 (O( n 3 n^{3} n3))算法二: 排序 双指针 代码 题目 题目链接:LeetCode-15题 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j],…

目录

题目

题目链接:LeetCode-15题

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

题目要求

  1. 满足 i != j、i != k 且 j != k (下标不同)
  2. nums[i] + nums[j] + nums[k] == 0
  3. 不重复的三元组

算法解法

算法一: 排序 + 暴力枚举 + set去重 (O( n 3 n^{3} n3))

排序再枚举,可以将重复的三元组变成相同的三元组,再去重即可。
在这里插入图片描述

简单解法,不讲解。

算法二: 排序 + 双指针

一旦排序应该思考能否使用双指针或者二分。

  1. 排序
  2. 固定一个数a
  3. 在该数后面的区间内,利用双指针算法一直寻找两个数的和等于-a即可
  4. 双指针算法:因为排序了,所以如果两个数相加如果大于目标值,说明中间的数字已经不可能等于目标值了,只有减小最大值(right–),才有机会得到目标值。反之,如果两个数相加小于目标值,直接left++;
    在这里插入图片描述
  • 细节问题:
    • 去重
      • 因为排序,我们会获得相同的结果,所以我们固定的数字如果与前一个相同,需要跳过。(跳过重复元素)
      • 双指针算法之间,left和right指针也需要跳过重复元素,原因是因为两个数字相加已经得到了-a,那么这两个数字必须一起存在才能得到对应的-a。也就是要么重复这两个数字,要么不能得到-a。

代码

class Solution {
public:vector<vector<int>> ret;vector<vector<int>> threeSum(vector<int>& nums) {//排序sort(nums.begin(),nums.end());int n = nums.size();for(int i =0;i<n;) //固定数a{//利用双指针解决问题int left = i+1;int right = n-1;int target = -nums[i];while(left < right){int sum = nums[left] + nums[right];if(sum > target) right--;else if(sum < target) left++;else {ret.push_back({nums[i],nums[left],nums[right]});left++,right--;//去重并且防止越界while(nums[left] == nums[left-1] && left < right)left++;while(nums[right] == nums[right+1] && right > left)right--;}}//去重固定元素i++;while(i<n && nums[i] == nums[i-1]) i++;}return ret;}
};
http://www.dtcms.com/wzjs/61398.html

相关文章:

  • 深圳网站建设电话有没有帮忙推广的平台
  • 外宣做网站宣传线上宣传方式有哪些
  • 深圳企业网站建设怎么做个人网站设计图片
  • dw制作简单网站模板网站制作公司
  • 宝安中心地铁站时间表上海最新新闻热点事件
  • 国家电网账号注册网站帐号是什么搜索引擎谷歌入口
  • 关于数据机房建设的网站域名买卖交易平台
  • 做游戏用什么电脑系统下载网站好东莞网站推广排名
  • 护士证注册网站移动网站推广如何优化
  • 深圳网站品牌建设有哪些免费推广网站
  • 日本做鸡做爱成人网站播放seo工作流程
  • 个人网站站长网络推广和网站推广平台
  • 非遗网站建设目的找人帮忙注册app推广
  • 嘉兴市建设官方网站互联网培训机构排名前十
  • 怎么讲解网站做网上营销怎样推广
  • 外贸加工订单乐山网站seo
  • 济南建设网站公司平台营销
  • 画册设计制作东营seo网站推广
  • 怎么用自己的电脑做网站企业网站设计图片
  • 二手车网站建设论文cms快速建站
  • 口味王网站建设可行分析表网页设计软件
  • 优秀企业网站流氓网站
  • 重庆网站托管百度推广怎么推
  • 做好的网站启用新冠病毒最新消息
  • 好用的网站建设英语培训
  • 买CAD设计图做的网站产品推广软件有哪些
  • 网站建设的过程包括几个阶段seo免费教程
  • 通过邮箱查注册网站百度公司招聘官网最新招聘
  • 淘宝优惠网站如何做seo搜索引擎实战详解
  • 武汉网站建设收费做网站关键词优化的公司