3Sum Closest 解答
Question
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).
Solution
和3Sum的思路基本一样。也是固定起点后,双指针遍历。
 public class Solution {
     public int threeSumClosest(int[] nums, int target) {
         if (nums == null || nums.length < 3) {
             return 0;
         }
         int length = nums.length;
         Arrays.sort(nums);
         int min = Integer.MAX_VALUE;
         int result = nums[0] + nums[1] + nums[2];
         for (int i = 0; i < length - 2; i++) {
             // Avoid duplicates
             if (i > 0 && nums[i] == nums[i - 1]) {
                 continue;
             }
             int l = i + 1, r = length - 1;
             while (l < r) {
                 int sum = nums[i] + nums[l] + nums[r];
                 int sub = Math.abs(sum - target);
                 if (sub == 0) {
                     return sum;
                 } else if (min > sub) {
                     min = sub;
                     result = sum;
                 }
                 if (sum > target) {
                     r--;
                     // Avoid duplicates
                     while (l < r && nums[r] == nums[r + 1]) {
                         r--;
                     }
                 } else if (sum < target) {
                     l++;
                     // Avoid duplicates
                     while (l < r && nums[l] == nums[l - 1]) {
                         l++;
                     }
                 }
             }
         }
         return result;
     }
 }
3Sum Closest 解答的更多相关文章
- LeetCode:3Sum, 3Sum Closest, 4Sum
		3Sum Closest Given an array S of n integers, find three integers in S such that the sum is closest t ... 
- 6.3Sum  && 4Sum  [ && K sum ] && 3Sum Closest
		3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find a ... 
- No.016 3Sum Closest
		16. 3Sum Closest Total Accepted: 86565 Total Submissions: 291260 Difficulty: Medium Given an array S ... 
- 【leetcode】3Sum Closest
		3Sum Closest Given an array S of n integers, find three integers in S such that the sum is closest t ... 
- 2Sum,3Sum,4Sum,kSum,3Sum Closest系列
		1).2sum 1.题意:找出数组中和为target的所有数对 2.思路:排序数组,然后用两个指针i.j,一前一后,计算两个指针所指内容的和与target的关系,如果小于target,i右移,如果大于 ... 
- [LeetCode][Python]16: 3Sum Closest
		# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 16: 3Sum Closesthttps://oj.leetcode.com ... 
- 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 15. 3Sum 16. 3Sum Closest  18. 4Sum
		n数求和,固定n-2个数,最后两个数在连续区间内一左一右根据当前求和与目标值比较移动,如果sum<target,移动较小数,否则,移动较大数 重复数处理: 使i为左至右第一个不重复数:while ... 
- LeetCode--No.016 3Sum Closest
		16. 3Sum Closest Total Accepted: 86565 Total Submissions: 291260 Difficulty: Medium Given an array S ... 
随机推荐
- J2EE学习路线
			第一部分: JAVA语言基础知识.包括异常.IO流.多线程.集合类.数据库.(切记基础知识一定要时时刻刻巩固,注意,如果你是想以最快速度学习J2EE,关于Java中的Swing知识点,就只做了解) ... 
- 工作中用到的linux命令
			都是工作中用到的,解决问题至上,不求甚解,怕再忘了,所以记录一下,勿喷. .log |,,,,|,| 先说一下这条命令: cat:打印文件内容 grep:查找,用到的有\s匹配空白字符 sed:刚用到 ... 
- Javascript:一款简易的图片切换插件
			最近迷上javascript,每天不写点什么都不舒服哈~ 尽管自己能力有限,还是尽自己所能写点东西出来. 实现效果: 效果预览:http://codepen.io/anon/pen/BNjxXj 该插 ... 
- linux系统批量无人值守安装
			一:批量无人值守安安装原理 利用DHCP TFTP FTP和PXE技术实现批量安装系统,首先在主server上安装好DHCP TFTP和FTP服务,client通过网卡的PXE技术获取到IP地址和TF ... 
- BNU10806:请在此处签到
			每年圣诞,ZUN都会邀请很多人到幻想乡举行联欢,今年也不例外.在联欢前,所有人需要在自己的昵称旁签到(签全名),以示出席.然后ZUN 会把大家的签到表保存下来作为纪念,以激励来年努力工作. 昵称: ... 
- Filter过滤器实现登录检查
			主要利用filter过滤掉未经登录而直接跳转到非登录访问页面.代码而言的话并不难,只是有几点问题需要注意一下. 1.使用filter需要配置web.xml,如果是/*那么在拦截后的页面会连带jsp页面 ... 
- ASE中的主要数据库
			Adaptive Server包括多种类型数据库: 必需数据库. “附加功能”数据库 .例子数据库 .应用数据库 1.必需数据库 master 数据库包含系统表,这些系统表中存储的数据被用来管理,有 ... 
- 前端--关于HTML
			在讲HTML之前不得不先简单粗略提一下浏览器以及浏览器与HTML的关系.众所周知,浏览器就是一个应用程序,这个应用程序可以完成网络调用.展示接收的html文档等.严格来讲HTML文档就是按照某个规则写 ... 
- 第一次用IIS发布网站时遇到的两个问题
			1. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 无法识别的属性“targetFramework”.请注意属性 ... 
- Jquery:强大的选择器<二>
			今天跟着资料做了一个示例,为什么我感觉自己做的没书上的好看呢?好吧,我承认自己对css样式只懂一点皮毛,我也不准备深度的去学习它,因为……公司有美工嘛! 这个小示例只是实现了元素的隐藏和显示.元素cl ... 
