zoukankan      html  css  js  c++  java
  • 【Leetcode】--数组篇--No.16--最接近的三数之和

    题目:

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/3sum-closest
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    第一次解答:

    class Solution {
        public int threeSumClosest(int[] nums, int target) {
            int len = nums.length;
            
            Arrays.sort(nums);
            if (len < 3) return -1;
            int ans = nums[0] + nums[1] + nums[2];
            for (int i = 0; i < len - 2; i++) {
                int L = i + 1;
                int R = len - 1;
                while (L < R) {
                    int sum = nums[i] + nums[L] + nums[R];
                    if (Math.abs(target - sum) < Math.abs(target - ans)) {
                        ans = sum;
                    }
                    if (sum < target) {
                        L++;
                    }
                    else if (sum > target) {
                        R--;
                    }
                    else {
                        return ans;
                    }
                } 
            }
            
            return ans;
        }
    }
  • 相关阅读:
    第一周作业
    模拟赛3 题解
    模拟赛2 题解
    [HNOI2008]GT考试 题解
    NOI Online 提高组 题解
    模拟赛1 题解
    知识点拾遗
    [NOIp2012]疫情控制 题解
    [CEOI2002]Bugs Integrated, Inc. 题解
    [NOIp2017]宝藏 题解
  • 原文地址:https://www.cnblogs.com/chenyun-/p/12288041.html
Copyright © 2011-2022 走看看