609.Two Sum - Less than or equal to target
1.Description(Medium)
Given an array of integers, find how many pairs in the array such that their sum isless than or equal to
a 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
2.Code
跟two sum很像,一旦发现sum<target就直接把tail-head全部加进去,再head++;
public int twoSum5(int[] nums, int target) {
if(nums==null || nums.length<2){
return 0;
}
int result=0;
int head=0;
int tail=nums.length-1;
Arrays.sort(nums);
while(head<tail){
int sum=nums[head]+nums[tail];
if(sum>target){
tail--;
}else{
result=result+(tail-head);
head++;
}
}
return result;
}
Last updated
Was this helpful?