05 August 2008
给定一个整数数组 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;
}
}