美文网首页
三数之和

三数之和

作者: 花钱约下 | 来源:发表于2019-01-30 17:28 被阅读0次

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

$nums = [-1, 0, 1, 2, -1, -4, 4, -2];
function threeSum($nums)
    {
        $data = [];
        $len = count($nums);
        sort($nums);
        foreach ($nums as $index => $num) {
            $a = $num;
            $j = $index + 1;
            $k = $len - 1;
            while ($j < $k) {
                $sum = $a + $nums[$j] + $nums[$k];
                if ($sum < 0) {
                    $j++;
                } else if ($sum > 0) {
                    $k--;
                } else {
                    $tmp_arr = [$a, $nums[$j], $nums[$k]];
                    sort($tmp_arr);
                    $_k = implode('', $tmp_arr);
                    $data[$_k] = $tmp_arr;
                    $j++;
                    $k--;
                }
            }
        }
        !empty($data) && $data = array_values($data);
        return $data;
    }

相关文章

  • algrithrom

    求和问题,双指针解决 done 两数之和 三数之和 最接近三数之和 四数之和 链表反转问题 done 链表反转 链...

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

  • 两数之和&三数之和&四数之和&K数之和

    今天看了一道谷歌K数之和的算法题,忽然想起来之前在力扣上做过2、3、4数之和的题,觉得很有必要来整理一下。其实2、...

  • 两数之和,三数之和

    转载:https://www.cnblogs.com/DarrenChan/p/8871495.html 1. 两...

  • 双指针总结

    左右指针 主要解决数组中的问题:如二分查找 盛最多水的容器 三数之和 四数之和 最接近三数之和 快慢指针 主要解决...

  • 【LeetCode通关全记录】15. 三数之和

    【LeetCode通关全记录】15. 三数之和 题目地址:15. 三数之和[https://leetcode-cn...

  • leetcode top100

    1.求两数之和(数组无序) 2.求电话号码的字母组合 3.三数之和 4.两数之和(链表)

  • 纯C手撕leetcode-基本数据结构-hash table

    Hash table纯C实现两数之和和Hashtable 三数之和https://leetcode-cn.com/...

  • 三数之和

    三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a +...

  • 三数之和

    三数之和这里我是将用最暴力的三重循环来检验x + y = -z,然后排序过后输出,但是这样时间复杂度为O(n^3)...

网友评论

      本文标题:三数之和

      本文链接:https://www.haomeiwen.com/subject/vzpcsqtx.html