两数之和 II
题目:
描述
给一组整数,问能找出多少对整数,他们的和大于一个给定的目标值。请返回答案。
样例
样例 1:
输入: [2, 7, 11, 15], target = 24
输出: 1
解释: 11 + 15 是唯一的一对
样例 2:
输入: [1, 1, 1, 1], target = 1
输出: 6
public class Solution {
/**
* @param nums: an array of integer
* @param target: An integer
* @return: an integer
*/
public int twoSum2(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;
r--;
} else {
l++;
}
}
return ans;
}
}