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     }
  • 相关阅读:
    join()方法的使用
    synchronized关键字
    voliatle关键字
    一.线程概述
    NIO demo
    同步阻塞I/O
    Ubuntu16.04.1 安装Nginx
    垃圾收集
    如何从头开始安装 wordpress
    centos 6 安装 gnu c++ 等开发工具
  • 原文地址:https://www.cnblogs.com/feiling/p/3169943.html
Copyright © 2011-2022 走看看