LeetCode 75: Max Number of K-Sum Pairs

김준수·2024년 2월 26일
0

LeetCode 75

목록 보기
13/63
post-custom-banner

Max Number of K-Sum Pairs

Description

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.


정수 배열 nums와 정수 k가 제공됩니다.

한 연산으로, 배열에서 두 숫자의 합이 k가 되는 수를 선택하고 배열에서 제거합니다.

배열에서 수행할 수 있는 최대 연산 수를 반환합니다.

Example 1:

Input: nums = [1,2,3,4], k = 5
Output: 2
해설: 다음 nums로 시작 = [1,2,3,4]:

  • 1과 4를 제거하면 nums = [2,3]
  • 2와 3을 제거하면 nums = []
    더이상 더해서 5가 되는 쌍은 더 이상 없으므로 총 2개의 연산이 수행됩니다.

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 <= 105
  • 1 <= nums[i] <= 109
  • 1 <= k <= 109

Solution


import java.util.Arrays;

class Solution {
    public int maxOperations(int[] nums, int k) {
        int count = 0;
        int n = nums.length;
        Arrays.sort(nums);
        int i = 0;
        int j = n - 1;
        while (i < j) {
            if (nums[i] + nums[j] == k) {
                i++;
                j--;
                count++;
            } else if (nums[i] + nums[j] < k) {
                i++;
            } else {
                j--;
            }
        }
        return count;
    }
}
post-custom-banner

0개의 댓글