美文网首页
刷Lintcode:最接近的三数之和

刷Lintcode:最接近的三数之和

作者: 2a25936eedd9 | 来源:发表于2017-01-07 14:47 被阅读0次

给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。

样例

例如S=[-1, 2, 1, -4]and target =1. 和最接近 1 的三元组是 -1 + 2 + 1 = 2.

思路:

定位头和尾两个点,在中间找最值点。然后遍历头和尾。这个方法时间代价太大,我觉得不是很好。但只能想到这里了。下面来看看九章的答案:

实在是简单了好多,仔细看看。它首先做了排序。其次,相比我的暴力算法。这个方法判断了与target的大小关系。换句话说,我的方法是无脑地搜索出目标值,而这个方法是有目的地去接近目标值。思路:
1.暴力思路:全部计算出来,然后比大小。

2.这部分有两个过程:1.计算,2.比大小。思考哪个过程可以简化?

3.比大小本身是很简单的,不用简化。那么考虑简化计算过程。

3.所谓简化计算过程就是要抛弃那些明显劣于前项的数据更新。思考 如果能够判断是否明显劣于前项?对于无序数组,不可能判断。那么先对数组排序。

4.对于有序数组如何判断是否劣于前向? 这个时候就要定义什么是优劣?

优是接近target,劣是远离target。那么只有两种结果,这个sum值小于target,或者大于target。对于小于target的值,更新要取大,反之取小。

这样反思以后,其实我的方法几乎多余,就相当于暴力算出所有可能,然后求最优。解题过程中我的困惑主要是不知道哪里去找思路。这样一来就很麻烦。

相关文章

  • 刷Lintcode:最接近的三数之和

    给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。 样例 例如S=[-1...

  • lintcode 最接近的三数之和

    给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。注意事项只需...

  • Python小白 Leetcode刷题历程 No.16-N

    Python小白 Leetcode刷题历程 No.16-No.20 最接近的三数之和、Phone Nu...

  • algrithrom

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

  • LeetCode-16 最接近的三数之和

    题目:16. 最接近的三数之和 难度:中等 分类:数组 解决方案:双指针 今天我们学习第16题最接近的三数之和,这...

  • 双指针总结

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

  • lintcode 三数之和

    给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。注意...

  • LeetCode练习day1-数组相关

    LeetCode16 最接近的三数之和 相似题目:LeetCode15 三数之和 题目详情 给你一个长度为 n 的...

  • LintCode三数之和系列问题

    三数之和 LintCode57 三数之和解题思路:先对数组排序,然后开始遍历,对于数组中的每一个元素,用两指针往中...

  • 最接近的三数之和

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum...

网友评论

      本文标题:刷Lintcode:最接近的三数之和

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