用 PHP 来刷leetCode 之 四数之和
给定一个包含 n 个整数的数组 nums
和一个目标值 target
,判断 nums
中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target
相等?找出所有满足条件且不重复的四元组。
注意:
答案中不可以包含重复的四元组。
示例:
给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为: [[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2] ]
/*** Created by PhpStorm.* User: taov5* Date: 2019/3/20* Time: 3:37 PM*/
/*** @param Integer[] $nums* @param Integer $target* @return Integer[][]*/
function fourSum($nums, $target) {sort($nums);$len = count($nums);$res = [];for ($i = 0;$i<$len-3;$i++){for ($j=$i+1;$j<$len-2;$j++){$l=$j+1;$r=$len-1;while ($l<$r){$sum = $nums[$i]+$nums[$j]+$nums[$l]+$nums[$r];if($sum===$target && $r>$l){$tmp = [$nums[$i],$nums[$j],$nums[$l],$nums[$r]];$res[]=$tmp;while ($l<$r&&$nums[$r]===$nums[$r-1]){$r--;}while ($l<$r&&$nums[$l]===$nums[$l+1]){$l++;}$r--;$l++;}else{if($sum>$target){$r--;}else{$l++;}}}}}return array_unique($res,SORT_REGULAR);
}
print_r(fourSum([0,0,0,0],0));
用 PHP 来刷leetCode 之 四数之和相关推荐
- 20200127:(leetcode)四数之和(动态图解)
四数之和 题目 基本思路 代码实现 题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + ...
- 4. Leetcode 18. 四数之和 (数组-双向双指针)
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target .请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] ( ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
- [Leetcode 18]四数之和 4 Sum
[题目] Given an array nums of n integers and an integer target, are there elements a, b, c, and d in n ...
- 用 PHP 来刷leetCode 之 三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...
- LeetCode 18. 四数之和 思考分析(双指针解)
目录 需要注意的几点 1.去除剪枝操作 2.去重操作的细节 code以及效果: 题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b, ...
- leetcode 18. 四数之和(双指针)
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...
- leetcode 18. 四数之和 (C++)
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...
- leetcode 18. 四数之和
题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出 ...
最新文章
- 自己制作 SPx N合1 自动安装盘(x86)
- java int byte数组_Java 中int与byte数组转换详解
- 每日程序C语言20-利用递归求阶乘
- 四年才等来的一天,务必要立志,要下决心!
- python线性回归x可以数量不一样吗_R和Python中的线性回归 - 在同一问题上的结果不同...
- ellen 纽奥良大学演讲
- wamp php5.6 mysql5.6,WampServer 3.0.6 多语言版 集成apache2.4.23 mysql5.7.14 php5.6.25-7.0.10 穿墙书店...
- 中信银行MySQL面试_【深圳中信银行信用卡中心面试】面试题_面试经验_面试流程-看准网...
- 路由器能连接到电视上看电视吗?
- 《自己动手写爬虫》笔记
- 条码仓库管理系统在食品行业中的应用
- USACO 2007 Dec Silver Mud Puddles bfs or A-star
- 百度直达号申请开通指南 轻应用开发
- anaconda安装及pytorch、tf、jupyter环境配置
- win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
- 微信加菲猫连接服务器失败,加菲猫微信表情包
- 《求职》第四部分 - 操作系统篇 - 操作系统基础
- js判断苹果ios各类机型
- 组策略中的软件限制策略
- Java NIO 编程:Buffer、Channel、Selector原理详解