From f2cbcaa0fb02a5989bd5ddcf5a3e52feaed33454 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Thu, 5 May 2022 07:52:58 +0530 Subject: [PATCH] max-number-of-k-sum-pairs py3 --- 1798_max-number-of-k-sum-pairs/README.md | 30 +++++++++++++++++++ .../python3/solution.py | 21 +++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 1798_max-number-of-k-sum-pairs/README.md create mode 100644 1798_max-number-of-k-sum-pairs/python3/solution.py diff --git a/1798_max-number-of-k-sum-pairs/README.md b/1798_max-number-of-k-sum-pairs/README.md new file mode 100644 index 0000000..01286c5 --- /dev/null +++ b/1798_max-number-of-k-sum-pairs/README.md @@ -0,0 +1,30 @@ +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 <= 105` +* `1 <= nums[i] <= 109` +* `1 <= k <= 109` + +https://leetcode.com/problems/max-number-of-k-sum-pairs \ No newline at end of file diff --git a/1798_max-number-of-k-sum-pairs/python3/solution.py b/1798_max-number-of-k-sum-pairs/python3/solution.py new file mode 100644 index 0000000..4c46ff0 --- /dev/null +++ b/1798_max-number-of-k-sum-pairs/python3/solution.py @@ -0,0 +1,21 @@ +class Solution: + def maxOperations(self, nums: List[int], k: int) -> int: + nums.sort() + + left, right = 0, len(nums) - 1 + + count = 0 + while left < right: + total = nums[left] + nums[right] + + if total == k: + count += 1 + left += 1 + right -= 1 + elif total < k: + left += 1 + else: + right -= 1 + + return count + \ No newline at end of file