zoukankan      html  css  js  c++  java
  • leetcode -- 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).
     1 public int threeSumClosest(int[] num, int target) {
     2         // Start typing your Java solution below
     3         // DO NOT write main() function
     4         Arrays.sort(num);
     5         int result = 0;
     6         int lastAbs = 65536;
     7         int len = num.length;
     8         for (int i = 0; i < len; i++) {
     9             int start = i + 1;
    10             int end = len - 1;
    11             while (start < end) {
    12                 if (num[i] + num[start] + num[end] == target) {
    13                     lastAbs = 0;
    14                     result = target;
    15                     start++;
    16                     end--;
    17                     return result;
    18                 }
    19                 if (num[i] + num[start] + num[end] > target) {
    20                     if (Math.abs(num[i] + num[start] + num[end] - target) < lastAbs) {
    21                         lastAbs = Math.abs(num[i] + num[start] + num[end] - target);
    22                         result = num[i] + num[start] + num[end];
    23                     }
    24                     end--;
    25                 }
    26 
    27                 if (num[i] + num[start] + num[end] < target) {
    28                     if (Math.abs(num[i] + num[start] + num[end] - target) < lastAbs) {
    29                         lastAbs = Math.abs(num[i] + num[start] + num[end]
    30                                 - target);
    31                         result = num[i] + num[start] + num[end];
    32                     }
    33                     start++;
    34                 }
    35 
    36             }
    37         }
    38         return result;
    39     }
  • 相关阅读:
    2020.10.08 模拟赛 题解
    可爱路径 题解
    飞行路线 题解2
    架设电话线 题解
    浅谈 LCA
    浅谈 Tarjan 算法之强连通分量(危
    初赛题目整理1
    【求助,待续!】holes
    【题解】HDU4467
    【题解】zhx154嬲
  • 原文地址:https://www.cnblogs.com/feiling/p/3169943.html
Copyright © 2011-2022 走看看