zoukankan      html  css  js  c++  java
  • Leetcode016 3Sum Closest

    public class S016 {
        //借鉴S015的思想,只是稍微有点慢
        public int threeSumClosest(int[] nums, int target) {
            Arrays.sort(nums);
            int result = nums[0]+nums[1]+nums[nums.length-1];
            for(int i =0;i<nums.length;i++){
                if(i>0&&nums[i]==nums[i-1])
                    continue;
                int left = i+1;
                int right = nums.length-1;
                while(left<right){
                    if(nums[i]+nums[left]+nums[right]==target){
                        result = nums[i]+nums[left]+nums[right];
                        return result;//如果只是break;会产生不必要的for循环,影响速度
                    }else{
                        result = Math.abs(nums[i]+nums[left]+nums[right]-target)<Math.abs(result-target)?
                                (nums[i]+nums[left]+nums[right]):result;                            
                        if(nums[i]+nums[left]+nums[right]<target){
                            left++;
                            while(left<right&&nums[left] == nums[left-1]){
                                left++;
                            }                        
                        }else if(nums[i]+nums[left]+nums[right]>target){
                            right--;
                            while(left<right&&nums[right] == nums[right+1]){
                                right--;
                            }                        
                        }
                    }
                }
            }
            return result;
        }
    }
  • 相关阅读:
    Ansible运维自动化(配置管理工具)
    Haproxy 概述及搭建
    Hadoop 单机与完全分布式配置
    大数据与Hadoop
    Hadoop 高可用
    kafka原理和集群
    zookeeper原理及搭建
    个人记录点滴
    Java中导入Excel文件
    反射相关
  • 原文地址:https://www.cnblogs.com/fisherinbox/p/5267105.html
Copyright © 2011-2022 走看看