zoukankan      html  css  js  c++  java
  • 1679. Max Number of K-Sum Pairs (M)

    Max Number of K-Sum Pairs (M)

    题目

    You are given an integer array nums and an integer k.

    In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array.

    Return the maximum number of operations you can perform on the array.

    Example 1:

    Input: nums = [1,2,3,4], k = 5
    Output: 2
    Explanation: Starting with nums = [1,2,3,4]:
    - Remove numbers 1 and 4, then nums = [2,3]
    - Remove numbers 2 and 3, then nums = []
    There are no more pairs that sum up to 5, hence a total of 2 operations.
    

    Example 2:

    Input: nums = [3,1,3,4,3], k = 6
    Output: 1
    Explanation: Starting with nums = [3,1,3,4,3]:
    - Remove the first two 3's, then nums = [1,4,3]
    There are no more pairs that sum up to 6, hence a total of 1 operation.
    

    Constraints:

    • 1 <= nums.length <= 10^5
    • 1 <= nums[i] <= 10^9
    • 1 <= k <= 10^9

    题意

    在数组中找到一对数,使它们的和为指定值,求这样的对数的最大值。

    思路

    对数组排序后,直接two pointers求和即可。


    代码实现

    Java

    class Solution {
        public int maxOperations(int[] nums, int k) {
            int count = 0;
            int left = 0, right = nums.length - 1;
            Arrays.sort(nums);
            while (left < right) {
                int sum = nums[left] + nums[right];
                if (sum > k) {
                    right--;
                } else if (sum < k) {
                    left++;
                } else {
                    count++;
                    left++;
                    right--;
                }
            }
            return count;
        }
    }
    
  • 相关阅读:
    威尔逊定理 费马小定理 欧拉定理 扩展欧拉定理
    Prufer编码
    [USACO 08MAR]土地购买 Land Acquisition
    [NOIp2004]虫食算
    [POI2000]病毒

    [NOI导刊] [2010] [提高] 淘汰赛制
    开源的基于云开发的通讯录小程序
    党建答题小程序
    抽奖活动小程序按人头开奖技术分析
  • 原文地址:https://www.cnblogs.com/mapoos/p/14293686.html
Copyright © 2011-2022 走看看