443.Two Sum - Greater than target
1.Description(Medium)
Given an array of integers, find how many pairs in the array such that their sum is bigger than a specific target number. Please return the number of pairs.
Example
Given numbers =[2, 7, 11, 15]
, target =24
. Return1
. (11 + 15 is the only pair)
Do it in O(1) extra space and O(nlogn) time.
2.Code
跟609相似
public int twoSum2(int[] nums, int target) {
if(nums==null || nums.length<2){
return 0;
}
Arrays.sort(nums);
int head=0;
int tail=nums.length-1;
int result=0;
while(head<tail){
int sum=nums[head]+nums[tail];
if(sum>target){
result=result+(tail-head);
tail--;
}else{
head++;
}
}
return result;
}
Last updated
Was this helpful?