Two Sum - Less Or Equal
Given an array of integers, find how many pairs in the array such that their sum isless than or equal toa specific target number. Please return the number of pairs.
Example
Given nums =[2, 7, 11, 15], target =24.
Return5.
2 + 7 < 24
2 + 11 < 24
2 + 15 < 24
7 + 11 < 24
7 + 15 < 25
Note
小于的话:
if (nums[left] + nums[right] <= target) {
res += right - left;
left++;
}Code
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
// 2 7 11 15
if (nums == null || nums.length < 2) {
return 0;
}
Arrays.sort(nums);
int res = 0;
int left = 0, right = nums.length - 1;
while (left < right) {
if (nums[left] + nums[right] <= target) {
res += right - left;
left++;
} else {
right--;
}
}
return res;
}
}Last updated