给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

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

例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:
[[-1, 0, 1],[-1, -1, 2]
]
/*** @param Integer[] $nums* @return Integer[][]* 1.将数组排序 2.定义三个指针,i,j,k。遍历i,那么这个问题就可以转化为在i之后的数组中寻找nums[j]+nums[k]=-nums[i]这个问题,也就将三数之和问题转变为二数之和---(可以使用双指针)*/
function threeSum($nums) {sort($nums);$len = count($nums);$res = [];for ($i=0;$i<=$len-3;$i++){$j= $i+1;$k = $len-1;while ($j < $k){if($nums[$i] == ($nums[$j]+$nums[$k])*-1){if(!in_array([$nums[$i],$nums[$j],$nums[$k]],$res)){$res[] = [$nums[$i],$nums[$j],$nums[$k]];}$j++;$k--;while ($j<$k && $nums[$j]===$nums[$j-1]){$j++;}while ($j<$k && $nums[$k]===$nums[$k+1]){$k--;}}else{if($nums[$i]+$nums[$j]+$nums[$k]<0){$j++;while ($j<$k && $nums[$j]===$nums[$j-1]){$j++;}}else{$k--;while ($j<$k && $nums[$k]===$nums[$k+1]){$k--;}}}}}return $res;
}print_r(threeSum([-2,0,1,1,2]));

用 PHP 来刷leetCode 之 三数之和相关推荐

  1. [双指针|模拟] leetcode 15 三数之和

    [双指针|模拟] leetcode 15 三数之和 1.题目 题目链接 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? ...

  2. LeetCode 15三数之和16最接近的三数之和

    三数之和(双指针) 题意: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意 ...

  3. LeetCode 15. 三数之和(3Sum)

    15. 三数之和 15. 3Sum 题目描述 Given an array nums of n integers, are there elements a, b, c in nums such th ...

  4. 20200126:(leetcode)三数之和 最接近的三数之和(含图解)

    三数之和 && 最接近的三数之和 题目 基本思路 代码实现 题目 三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b ...

  5. Leetcode 15.三数之和

    Time: 20190920 Type: Medium 题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所 ...

  6. Leetcode 15:三数之和(最详细解决方案!!!)

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 *a,b,c ,*使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. **注意:**答案中不可以包含重 ...

  7. Java实现 LeetCode 15 三数之和

    15. 三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以 ...

  8. LeetCode 15. 三数之和【双指针】

    15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j.i != k 且 j != k ,同时还满足 nums[ ...

  9. LeetCode 15. 三数之和

    题目描述 15. 三数之和 思路 思路1 比较容易想到的就是,求三数之和等于0,可以等价于求两个数的和,然后看这个和的相反数是否在nums里面. 但是 T_T这样的话复杂度太高了,会超时,捂脸,最后三 ...

最新文章

  1. “互联网+”的时代,易佳互联也随着时代步伐前进着
  2. IEEE Spectrum调查:AI 的 6 种最坏情况
  3. error MIDL2025/2026
  4. 电子书下载:Moving to Microsoft Visual Studio 2010
  5. Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available)
  6. Hadoop每日一讨论整理版
  7. SCSS 文件里的感叹号用法 - 给变量设置默认值
  8. 软件项目组织管理(二、三)项目管理与信息技术环境、项目管理过程组
  9. java报错symbol_为何此处会出现找不到symbol的错误呢?
  10. mybatis oracle 大写,解决mybatis用Map返回的字段全变大写的问题
  11. 【Java】Java中ThreadLocal简介以及源码
  12. 详细解读!Isotropic Remeshing的详细介绍与实现
  13. 立即更新 Chrome 浏览器!这个 0day 已遭在野利用
  14. 17. 信号量,共享内存和消息队列
  15. 华为5G空口新技术(2015年)
  16. Winserver AD管理Powershell——GUI 计算机加入域
  17. QT—常用容器 QStringList,QVector,QMap,QHash,QVariant
  18. echarts 柱状图让柱子倒叙
  19. [Python Nonebot]QQ机器人相关API / 网址介绍
  20. 数据库——SQL语言建立供应商表S,零件表P,工程表J,供应表SPJ

热门文章

  1. 英文人名及含意(转)
  2. ML302 OpenCPU系列(7)---AW8733A音频PA调试
  3. 基于MATLAB/Simulink软件的单相光伏并网逆变器仿真,仿真中使用两级电路,前级BOOST升压后级光伏逆变并网
  4. 一文掌握项目甘特图的使用方法
  5. 图片无法显示时,js实现 暂无图片效果
  6. python批量修改字典的键或值
  7. 万兆局域网方案_家庭万兆方案性价比之选,10G网速不是梦!
  8. MYSQL:时间粒度(每30s、每1分钟、每5分钟、每1小时、每1周、每1月、每1季度、每1年)
  9. Python3 数据库(MySQL/MongoDB/Redis)
  10. 运行在命令行的微信 cmd-wechat-terminal