zoukankan      html  css  js  c++  java
  • leetcode : 3 sum 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).

    tag : two pointers

    备注:
    int closest = Integer.MAX_VALUE / 2;  否则,当全是负数时,容易溢出。
    
    
    public class Solution {
        /* (1) 排序
           (2) 把所有三数之和临时存起来,取绝对值最小的,一旦等于0就可以直接返回了。
        */
        public int threeSumClosest(int[] nums, int target) {
            
            int closest = Integer.MAX_VALUE / 2;
            
            if(nums == null || nums.length < 3 ) {
                return closest;
            }
            
            Arrays.sort(nums);
            
            for(int i = 0; i < nums.length - 2; i++) {
                int x = nums[i];
                int left = i + 1;
                int right = nums.length - 1;
                
                while(left < right) {
                    int y = nums[left];
                    int z = nums[right];
                    int sum = x + y + z;
                    if(sum - target == 0) {
                       return sum;
                     } 
                    if(Math.abs(sum - target) < Math.abs(closest-target)) {
                        closest = sum;
                    }
                    if(sum < target) {
                        left++;
                    } else {
                        right--;
                    }
                }
            }
            
            return closest;
          
        }
    }
    

      

  • 相关阅读:
    mysql 8.x 忘记密码
    sqlite
    公租房查询记录
    idea 常用快捷键总结
    vue h5项目中上传图片时保存之后显示不全
    微信小程序开发中使用npm命令快速添加页面
    【Luogu7816】「Stoi2032」以父之名
    【XSY3657】 因数分解
    Min_25筛学习笔记
    拉格朗日反演学习笔记
  • 原文地址:https://www.cnblogs.com/superzhaochao/p/6399476.html
Copyright © 2011-2022 走看看