zoukankan      html  css  js  c++  java
  • 离给定整数最近的三数之和

    1. 问题描述

      leetcode 16,求出离给定目标整数最近的三数之和
    2. 解决思路

      和三数之和思路一致,额外需要解决的就是保存两个标志整数,用来标志小于target的最大数和大于target的最小数。
    3. 注意事项

      注意一些边界条件以及运算的溢出情况。
       1 import java.util.Arrays;
       2 
       3 public class Solution {
       4     public static int threeSumClosest(int[] nums, int target) {
       5         Arrays.sort(nums);
       6         int length = nums.length;
       7         int leftP;
       8         int minT = nums[0] + nums[1] + nums[2] < target ? nums[0] + nums[1] + nums[2]: Integer.MIN_VALUE+1;
       9         int maxT = nums[length-1] + nums[length-2] + nums[length-3] > target ? nums[length-1] + nums[length-2] + nums[length-3] : Integer.MAX_VALUE;
      10         for(int i=0; i<length-2; i++){
      11             // 最外层的去重方法
      12             if(i>0 && nums[i]==nums[i-1]) {
      13                 continue;
      14             }
      15             leftP = i+1;
      16             int rightP = length-1;
      17             while(leftP<rightP) {
      18                 int temp = nums[i] + nums[leftP] + nums[rightP];
      19                 if (temp < target) {
      20                     minT = minT > temp ? minT : temp;
      21                     leftP += 1;
      22 
      23                 } else if (temp > target) {
      24                     maxT = maxT > temp ? temp : maxT;
      25                     rightP -= 1;
      26                 } else if (temp == target){
      27                     return target;
      28                 }
      29             }
      30         }
      31         return  ((long)maxT-target) > ((long)target-minT) ? minT : maxT;
      32     }
      33 }
  • 相关阅读:
    时间,关机重启及网络常识
    bash xshell 特性
    Http介绍
    rsync 守护进程模式小记
    定时任务+邮件发送 小记
    4.iptables的匹配条件(一)
    3.iptables规则管理
    2.iptables规则查询
    1.iptables概念
    4.LVS实验构建
  • 原文地址:https://www.cnblogs.com/dogeLife/p/10913667.html
Copyright © 2011-2022 走看看