【双指针】1679. K 和数对的最大数目

【双指针】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;

    }
}

猜你喜欢

转载自blog.csdn.net/qq_44653420/article/details/131753818