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).
    public class Solution {
        public int threeSumClosest(int[] num, int target) {
            if(num.length<=2)
                return 0;
            Arrays.sort(num);
            int re=0;
            int min = Integer.MAX_VALUE;
            for(int i=0;i<num.length-2;i++){
                int temp = num[i];
                int start = i+1;
                int end=num.length-1;
                while(end>start){
                    int sr = num[start]+num[end]+temp;
                    if(sr==target)
                        return target;
                    if(sr>target){
                        if(Math.abs(sr-target)<min){
                            min=Math.abs(sr-target);
                            re=sr;
                        }
                            
                        end--;
                        continue;
                    }
                    if(sr<target){
                        if(Math.abs(sr-target)<min){
                            min=Math.abs(sr-target);
                            re=sr;
                        }
                            
                        start++;
                        continue;
                    }
                }
            }
            return re;
            
        }
    }
  • 相关阅读:
    面向对象基础之类与对象
    常用模块(一)
    re模块与正则表达式
    初识模块
    函数进阶篇
    Spring + Mybatis 读写分离
    java包的所有类生成class
    Oralce数据库的优化
    Java 搜索引擎
    JAVA分布式架构的演进
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/3742731.html
Copyright © 2011-2022 走看看