思路: 老样子,two pointer。遇到sorted array基本都可以用two pointer来解决。另外这类题目也都可以用二分法binary search来做。话不多少了,直接上代码:
class Solution {
public int threeSumSmaller(int[] nums, int target) {
Arrays.sort(nums);
int res = 0;
for(int i = 0; i < nums.length -2; i++){
int j = i + 1, k = nums.length - 1, remain = target - nums[i];
while(j < k){
if(nums[j] + nums[k] < remain){
res += k - j;
j++;
}else{
k--;
}
}
}
return res;
}
}
总结:无