LeetCode 3sum-closest 题解
思路
- 排序
- 枚举一个数a
- 双指针移动法确定b和c
- 求和,更新最接近的值
复杂度
T(n)=O(n2)  M(n)=O(1)T(n)=O(n^2) \; M(n)=O(1)T(n)=O(n2)M(n)=O(1)
class Solution {
    public int threeSumClosest(int[] nums,int target) {
        int sum = nums[0]+nums[1]+nums[2];
        int ans = sum;
        int minDiff = Math.abs(sum-target);
        Arrays.sort(nums);
        int len = nums.length;
        int l;
        int r;
        int diff;
        for (int i = 0; i+3 <= len; ++i) {
            if (nums[i]*3 >= target+minDiff)
                break;
            l = i+1; r = len-1;
            while (l<r) {
                sum = nums[i]+nums[l]+nums[r];
                diff = Math.abs(sum-target);
                if (diff < minDiff) {
                    minDiff = diff;
                    ans = sum;
                }
                if (sum > target)
                    --r;
                else if (sum < target)
                    ++l;
                else
                    return target;
            }
        }
        return ans;
    }
}
Runtime: 10 ms, faster than 85.33% of Java online submissions for 3Sum Closest.
Memory Usage: 37.8 MB, less than 100.00% of Java online submissions for 3Sum Closest.
LeetCode 3sum-closest 题解的更多相关文章
- [LeetCode]3Sum Closest题解
		3sum Closest: Given an array S of n integers, find three integers in S such that the sum is closest ... 
- [LeetCode] 3Sum Closest 最近三数之和
		Given an array S of n integers, find three integers in S such that the sum is closest to a given num ... 
- Leetcode  3Sum Closest
		Given an array S of n integers, find three integers in S such that the sum is closest to a given num ... 
- LeetCode 3Sum Closest (Two pointers)
		题意 Given an array S of n integers, find three integers in S such that the sum is closest to a given ... 
- LeetCode——3Sum Closest
		Question Given an array S of n integers, find three integers in S such that the sum is closest to a ... 
- leetcode 3Sum Closest python
		class Solution(object): def threeSumClosest(self, nums, target): """ :type nums: List ... 
- LeetCode   3Sum Closest 最近似的3sum(2sum方法)
		题意:找到最接近target的3个元素之和,并返回该和. 思路:用2个指针,时间复杂度O(n^2). int threeSumClosest(vector<int>& nums, ... 
- 《LeetBook》leetcode题解(16):3Sum Closest [M]
		我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ... 
- LeetCode之“散列表”:Two Sum && 3Sum && 3Sum Closest && 4Sum
		1. Two Sum 题目链接 题目要求: Given an array of integers, find two numbers such that they add up to a specif ... 
- [LeetCode][Python]16: 3Sum Closest
		# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 16: 3Sum Closesthttps://oj.leetcode.com ... 
随机推荐
- PHP独立环境配置
			php 下载地址: http://windows.php.net/download/ Apache 下载地址: http://www.apachelounge.com/download/ mysql ... 
- Xcode如何集成Pod教程
			一般开发都会用到很多第三方的框架,利用好他们可以加快开发进度,为了更方便将第三方的框架集成到我们的项目中,Pod是个很好的选择,现在说一下该怎么将Pod集成到我们的Xcode中 第一种方法 命令行的方 ... 
- js 递归总结
			1.根据子id 递归查找所有父级 id 主要用于vue element 中 Cascader 级联选择器展示 在编辑中回显默认展示 tree 数据 var arr = [{ "label ... 
- 小浩算法|一文让你学会如何用代码判断"24"点
			“24点”是一种数学游戏,正如象棋.围棋一样是一种人们喜闻乐见的娱乐活动.它始于何年何月已无从考究,但它以自己独具的数学魅力和丰富的内涵正逐渐被越来越多的人们所接受.今天就为大家分享一道关于“24点” ... 
- toj 3616 Add number (没想到啊~~)
			Add number 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 60 测试通过: 21 描述 Employees of Baidu like ... 
- 剖析Java OutOfMemoryError异常
			剖析Java OutOfMemoryError异常 在JVM中,除了程序计数器外,虚拟机内存中的其他几个运行时区域都有发生OutOfMemoryError异常的可能,本篇就来深入剖析一下各个区域出现O ... 
- C# 获取键盘钩子,屏蔽键盘按键
			static int hHook = 0; public delegate int HookProc(int nCode, int wParam, IntPtr lParam); //LowLevel ... 
- PHPJN0001:phpmyadmin 允许密码为空 设置
			phpmyadmin连接mysql数据库,出于安全考虑,默认不允许使用空密码连接数据库.因为数据库一般都设置密码访问. 但如果只是本机环境测试使用,每隔一段时间都需要填写密码,不是很方便. 如果没有修 ... 
- nuget打包上传
			准备工作 下载nuget.exe,以及gui推送编辑工具 Nuget Package Explorer (可选) 设置nuget环境变量. 流程 完成项目 cmd控制台cd到项目目录下(项目目录不是解 ... 
- Python 实现选择排序
			选择排序算法步骤: 找到数组中最小的那个元素中, 将它和数组的第一个元素交换位置, 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置, 如此往复,知道将整个数组排序. 逐步分析: 假设一个 ... 
