GuilinDev

Lc1099

05 August 2008

1099. Two Sum Less Than K

给定一个整数数组 nums 和整数 k,返回最大和使得存在 i < j 且 nums[i] + nums[j] = sum 和 sum < k。如果不存在满足该方程的 i,j,则返回 -1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
    public int twoSumLessThanK(int[] nums, int k) {
        Arrays.sort(nums);
        int max = -1;
        int left = 0;
        int right = nums.length - 1;
        while (left < right) {
            int sum = nums[left] + nums[right];
            if (sum < k && sum > max) {
                max = sum;
            } else if (sum >= k) {
                right--;
            } else {
                left++;
            }
        }
        return max;
    }
}