【双指针】1679. K 和数对的最大数目
解题思路
- 使用双指针
- 先对数组从小到大进行排序
- 然后设置前后指针
- 比较前后指针的数字之和 比较和k是不是相同 然后移动指针
class Solution {
public int maxOperations(int[] nums, int k) {
// 最暴力的方法 两层for循环
// 双指针
// 先对数组进行排序 然后设置首尾指针 比较前后指针的数字之和 计算是不是k
int i = 0;
int j = nums.length - 1;
Arrays.sort(nums);// 数组从小到大进行排序
int count = 0;
while(i < j){
int temp = nums[i] + nums[j];
if(temp == k){
count++;
i++;
j--;
}
else if(temp < k){
i++;
}else if(temp > k){
j--;
}
}
return count;
}
}