Java [leetcode 16] 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).

解题思路:

这个跟3Sum的思路差不多,不过实现的过程就简单多了。外面一个大的循环,里面也是从两边开始,如果三个数之和减去目标值的绝对值较小,则更新之并记录此三个数之和。

代码如下:

 1 public class Solution {
 2     public int threeSumClosest(int[] nums, int target) {
 3         int length = nums.length;
 4         int min = Integer.MAX_VALUE;
 5         int left, right, comp, result = 0;
 6
 7         if (length < 3)
 8             return 0;
 9         Arrays.sort(nums);
10
11         for (int i = 0; i < length - 2; i++) {
12             left = i + 1;
13             right = length - 1;
14             while (left < right) {
15                 comp = nums[i] + nums[left] + nums[right];
16                 if (Math.abs(comp - target) < min){
17                     min = Math.abs(comp - target);
18                     result = comp;
19                 }
20                 if (comp > target)
21                     right--;
22                 else if (comp < target)
23                     left++;
24                 else
25                     return target;
26             }
27         }
28         return result;
29     }
30 }

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).
时间: 2024-11-10 22:03:46

Java [leetcode 16] 3Sum Closest的相关文章

Leetcode 16. 3Sum Closest(指针搜索)

16. 3Sum Closest Medium 131696FavoriteShare Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have e

leetCode 16.3Sum Closest (离给定值最近的三数之和) 解题思路和方法

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 arr

LeetCode 16 3Sum Closest(C,C++,Java,Python)

Problem: 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

LeetCode #16 3Sum Closest (M)

[Problem] 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

[LeetCode] 16. 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

Array + two points leetcode.16 - 3Sum Closest

题面 Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have exactly one solution. 给定数组,找出并返回最接近target的

LeetCode 16 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

[leetcode]16. 3Sum Closest最接近的三数之和

Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have exactly one solution. Example: Given array nu

LeetCode 16 3Sum Closest(最接近的3个数的和)

翻译 给定一个有n个整数的数组S,找出S中3个数,使其和等于一个给定的数,target. 返回这3个数的和,你可以假定每个输入都有且只有一个结果. 例如,给定S = {-1 2 1 -4},和target = 1. 那么最接近target的和是2.(-1 + 2 + 1 = 2). 原文 Given an array S of n integers, find three integers in S such that the sum is closest to a given number,