在数组中选两个数字达到目的
选两个数字如果是目标和,则可以直接移动指针,如果是一个小于等于目标和的数,则在lo到hi符合条件时,hi-lo个数都可以符合条件。
class Solution {
public int purchasePlans(int[] nums, int target) {
Arrays.sort(nums);
int lo=0;
int hi=nums.length-1;
int res=0;
while(lo<hi){
if(nums[lo]+nums[hi]>target){
hi--;
}else{
int size=hi-lo;
res+=size;
lo++;
}
res=res%1000000007;
}
return res%1000000007;
}
}