美文网首页
LeetCode16 最接近的三数之和

LeetCode16 最接近的三数之和

作者: 麦兜儿流浪记 | 来源:发表于2019-08-05 14:30 被阅读0次

题目

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

解题思路

    1. 将数组排序 时间复杂度是O(nlogn)
    2. 利用三个指针对数组进行遍历与target比较, 找出最接近的三个数
    3. 对于指针,一个是固定的i, 一个是start-> i+1, 一个是end->length-1
    4. min_value = nums[0] + nums[1] + nums[2]
    5. temp = nums[i] + nums[start] + nums[end]
    6. 比较abs(target - min_value)和abs(target - temp)
    7. 然后比较target和temp
    8. 当end<=start时,退出循环
    9. 开始利用i遍历数组, 直到i遍历结束,整个结束
    10. 2~9的时间复杂度是O(n^2)
    所以总的时间复杂度是O(n^2).若使用暴力法,则是O(n^3)

代码

class Solution(object):
    def threeSumClosest(self, nums, target):       
        nums.sort()
        n = len(nums)
        min_value = nums[0] +nums[1] + nums[2]
        for i in range(n):
            start = i+1
            end = n-1
            while start < end:
                temp = nums[i] + nums[start] +nums[end]
                if abs(target - temp) < abs(target - min_value):
                    min_value = temp
                if temp < target:
                    start += 1
                elif temp > target:
                    end -=1
                else:
                    return min_value
        return min_value

相关文章

  • LeetCode练习day1-数组相关

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

  • LeetCode16 最接近的三数之和

    题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它...

  • algrithrom

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

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

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

  • 双指针总结

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

  • 最接近的三数之和

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

  • 最接近的三数之和

    题目 思路 题解

  • 最接近的三数之和

    题目地址 1.思路 第一步很容易想到的就是降维处理,三个数相当于三维,那么我确定一个数的时候只剩下2维,这样就把问...

  • 最接近的三数之和

    leetcode 16 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中...

  • 最接近的三数之和

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

网友评论

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

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