两数和-小于或等于目标值
题目:
描述
给定一个整数数组,找出这个数组中有多少对的和是小于或等于目标值。返回对数。
样例
例1:
输入: nums = [2, 7, 11, 15], target = 24.
输出: 5.
解释:
2 + 7 < 24
2 + 11 < 24
2 + 15 < 24
7 + 11 < 24
7 + 15 < 24
例2:
输入: nums = [1], target = 1.
输出: 0.
public class Solution {
/**
* @param nums: an array of integer
* @param target: an integer
* @return: an integer
*/
public int twoSum5(int[] nums, int target) {
// write your code here
if(nums.length == 0) {
return 0;
}
Arrays.sort(nums);
int l = 0, r = nums.length - 1;
int ans = 0;
while(l < r) {
int sum = nums[l] + nums[r];
if(sum <= target) {
ans += r - l;
l++;
} else {
r--;
}
}
return ans;
}
}