博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] 3Sum Closest
阅读量:5959 次
发布时间:2019-06-19

本文共 1240 字,大约阅读时间需要 4 分钟。

hot3.png

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).

思路1:类似3Sum,区别是不需要去重,另外需要维护一个最小差值。

import java.util.Arrays;public class Solution {	public int threeSumClosest(int[] num, int target) {		int n = num.length;		Arrays.sort(num);		int min = Integer.MAX_VALUE;		int result = 0;		for (int i = 0; i < n; i++) {			int start = i + 1, end = n - 1;			int sum = target - num[i];			int cur = 0;			while (start < end) {				cur = num[start] + num[end];				if (Math.abs(cur + num[i] - target) < min) {					min = Math.abs(cur + num[i] - target);					result = cur + num[i];				}				if (cur < sum)					start++;				else if (cur > sum)					end--;				else {					start++;					end--;				}			}		}		return result;	}	public static void main(String[] args) {		System.out.println(new Solution().threeSumClosest(new int[] { -1, 2, 1,				-4 }, 1));		System.out.println(new Solution().threeSumClosest(				new int[] { 1, 2, 3, }, 100));	}}

转载于:https://my.oschina.net/jdflyfly/blog/283673

你可能感兴趣的文章
Block
查看>>
for in,Object.keys,for of 的区别
查看>>
结构型设计模式之桥接模式
查看>>
深入理解nodejs Stream模块
查看>>
java版spring cloud+spring boot+redis多租户社交电子商务平台:服务消费(Feign)
查看>>
ios手机QQ无发改变title问题
查看>>
深入理解ES6 ---- 正则扩展
查看>>
activiti总结(一)流程图结构简介
查看>>
dom节点和vue中template浅谈
查看>>
第三方开源框架(一)
查看>>
JSONP跨域
查看>>
对js陀螺仪的认知理解
查看>>
react native scrollView定时器广告位
查看>>
如何在vue中使用ts开发
查看>>
学习vim其实很简单
查看>>
刘强东解读京东AI战略:无人仓无人配送都在布局
查看>>
redux源码分析
查看>>
吴恩达机器学习系列18:核函数
查看>>
Java内存区域和内存模型
查看>>
写python 报错 IndentationError:unindent does not match any outer indentation level
查看>>