波波老师,周赛1498题我是利用排序+双指针,可是我总是在数组在32以下的都可以AC,但是数据量超过32就不行,我加了快速幂,但是还是不行,现在不知道怎么办了,波波老师,您可以帮我看看我的逻辑有错嘛,我已经困扰这个问题好几天了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
class Solution {
public int numSubseq(int[] nums, int target) {
Arrays.sort(nums);
int res = 0;
int l = 0, r = nums.length - 1;
//双指针,始终保持左边的数有效
while (l <= r) {
if (nums[l] + nums[r] > target)
r--;
else {
res = (int)((res + myPow(2, r - l)) % (1000000000 + 7));
l++;
}
}
return res;
}
//快速幂
private long myPow(int x, int n){
if(n == 0) return 1;
long t = x;
long res = 1;
while(n > 0){
if((n & 1) == 1)
res *= t;
t *= t;
n >>= 1;
}
return res;
}
}