博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16 3Sum Closest
阅读量:4582 次
发布时间:2019-06-09

本文共 962 字,大约阅读时间需要 3 分钟。

public class Solution {    public int threeSumClosest(int[] nums, int target) {        if (nums == null || nums.length < 3) {            return Integer.MAX_VALUE;        }        Arrays.sort(nums);        int min = Integer.MAX_VALUE/2;//otherwise it will overflow for (min - target); for (int i = 0; i < nums.length; i++) {            int left = i + 1;            int right = nums.length-1;            while (left < right) {                int sum = nums[i] + nums[left] + nums[right];                if (sum == target) {                    return target;                } else if (sum < target) {                    left++;                } else {                    right--;                }                min = Math.abs(sum - target) < Math.abs(min - target) ? sum : min;            }        }        return min;    }}

注意红字部分!,min 开始应该赋值为Integer.MAX_VALUE/2 否则后面的表达式(min - target)如果target为负数会溢出overflow

转载于:https://www.cnblogs.com/77rousongpai/p/4513501.html

你可能感兴趣的文章
Winform PPT切换图片效果
查看>>
ionic调用数据接口(post、解决 payload 问题)
查看>>
奇偶数分离
查看>>
1020 PAT
查看>>
hdu6080(最小环)
查看>>
背景透明,文字不透明解决办法
查看>>
微信小程序 报错: Expecting 'EOF','}',',',']', got INVALID
查看>>
mysql 数据库【目录】
查看>>
开发工具IDEA环境安装配置
查看>>
python3正则表达式详细用法示例
查看>>
算法笔记_086:蓝桥杯练习 9-2 文本加密(Java)
查看>>
Win8下使用Ctrl加空格来切换输入法
查看>>
ajax分页
查看>>
Java 常量池理解与总结(转摘)
查看>>
多线程编程学习笔记——线程池(三)
查看>>
从开始学编程过了半年了……
查看>>
【05月22日】预分红股息率最高排名
查看>>
Android学习总结(二)——Service基本概念和生命周期
查看>>
chr()//ord() //进制转换函数//eval()//文件函数//split()
查看>>
第一章 Java程序设计概述
查看>>