`
economist
  • 浏览: 5906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

3Sum Closest

 
阅读更多

 

问题描述

Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.

 

    For example, given array S = {-1 2 1 -4}, and target = 1.

    The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

实现方案

def three_sum_closest(nums, target):
    nums.sort()
    result = nums[0] + nums[1] + nums[-1]
    for i in range(len(nums) - 1):
        if i == 0 or (i != 0 and nums[i] != nums[i - 1]):
            low = i + 1
            high = len(nums) - 1
            while low < high:
                s = nums[i] + nums[low] + nums[high]
                if s == target:
                    return target
                if s < target:
                    low += 1
                else:
                    high -= 1
                if abs(s - target) < abs(result - target):
                    result = s
    return result


print three_sum_closest([0, 2, 1, -3], 1)

 

分享到:
评论

相关推荐

    js代码-16. 3Sum Closest

    3Sum Closest" 指的是一个关于JavaScript编程的题目,具体来说是解决算法问题“找到数组中三个元素的和最接近目标值的组合”。这个问题源自计算机科学中的经典算法题,常在面试或编程竞赛中出现。描述中的 "3Sum ...

    程序员面试宝典LeetCode刷题手册

    16. 3Sum Closest 17. Letter Combinations of a Phone Number 18. 4Sum 19. Remove Nth Node From End of List 20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 23. Merge k Sorted ...

    Coding Interview In Java

    18 3Sum Closest 57 19 String to Integer (atoi) 59 20 Merge Sorted Array 61 ... ... 231 Counting Bits 561 232 Maximum Product of Word Lengths 563 233 Gray Code 565 234 Permutations 567 235 Permutations...

    js-leetcode题解之16-3sum-closest.js

    js js_leetcode题解之16-3sum-closest.js

    java-leetcode面试题解双指针之第16题最接近的三数之和.zip

    其中,第16题“最接近的三数之和”(3Sum Closest)是一道常见的双指针问题,常出现在面试中以考察应聘者对算法的理解和应用能力。这个题目的目标是找到数组中三个数的和,使得它们的和最接近给定的目标值。 解题的...

    LeetCode 刷题汇总1

    * 3Sum最近(3Sum Closest):找到数组中三个元素的和最近目标值的元素。 * 4Sum(4Sum):找到数组中四个元素的和等于目标值的元素。 这些知识点涵盖了算法设计、数据结构、数学运算、字符串操作、链表操作、栈...

    10个最常见的Java算法.doc

    * 经典问题:Evaluate Reverse Polish Notation, Longest Palindromic Substring, 单词分割, 字梯, Median of Two Sorted Arrays, 正则表达式匹配, 合并间隔, 插入间隔, Two Sum, 3Sum, 4Sum, 3Sum Closest, String ...

    算法刷题笔记leetcode/lintcode

    - 3 Sum Closest(三数之和最接近) - Remove Duplicates from Sorted Array(删除有序数组中的重复项) - Remove Duplicates from Sorted Array II(删除排序数组中的重复项II) - Merge Sorted Array(合并两...

    LeetCode前400题Java精美版

    16. **3Sum Closest** (Medium): 找出数组中三个数的和最接近目标值的组合。在3Sum的基础上,需要调整指针移动策略以寻找最接近的和。 这些题目覆盖了数据结构、算法、字符串处理、数学逻辑等多个方面,对于提升...

    LeetCode答案大全

    16. 3Sum Closest:与3Sum类似,但需要找到和为目标值最近的三个数的组合。 17. Letter Combinations of a Phone Number:电话号码的字母组合。这是回溯算法的一个典型应用。 18. 4Sum:找到所有和为特定值的不...

    c语言-leetcode 0016-three-sum-closest.zip

    c c语言_leetcode 0016_three_sum_closest.zip

    LintCode:针对LintCode问题的Java解决方案

    [3 Sum Closest.java]( Sum Closest.java) Java 2个 [3 Sum.java]( Sum.java) Java 3 [4 Sum.java]( Sum.java) Java 4 Java 5 Java 6 [Balanced Binary Tree.java]( Binary Tree.java) Java 7 ...

    leetcode1-200题源码(c++)

    9. 题目16:3Sum Closest (最接近的三数之和) 给定一个包含n个整数的数组nums,找出其中三个数使得它们的和与目标值target最接近。使用排序和双指针法可以高效解决。 10. 题目68:文本Justify (文本左右对齐) 该...

    javalruleetcode-LintCode20160430:LintCode20160430

    [3Sum Smaller.java]( Smaller.java) Java 6 [4 Sum.java]( Sum.java) Java 7 Java 8 [添加和搜索 Word.java](和搜索 Word.java) Java 9 [添加Binary.java](Binary.java) Java 10 [加两个数II.java]( 两个数II....

    leetcode-cpp刷题

    - **2.1.9 3Sum Closest** - 找到三个数之和最接近给定目标值的组合。 - 实现思路:类似于3Sum,但在查找过程中记录与目标值差距最小的组合。 - **2.1.10 4Sum** - 在数组中找到四个数之和等于零的所有组合。 ...

    leetcode中文版

    5. **2.1.9 3Sum Closest**:给定一个包括 n 个整数的数组 nums 和一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。 6. **2.1.10 4Sum**:给定一个包含 n 个整数的...

    javalruleetcode-LintCode20170127:LintCode20170127

    java lru leetcode Java算法问题 托管来自 LintCode、LeetCode 等算法问题的 Java 解决方案。 一旦出现新问题或新测试用例,我将尝试...[3Sum Smaller.java]( Smaller.java) Java 6 [4 Sum.java]( Sum.java) 中等的 J

Global site tag (gtag.js) - Google Analytics