1679.Max Number of K-Sum Pairs
My code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def maxOperations(self, nums: List[int], k: int) -> int:
left = 0
right = len(nums) - 1
operation = 0
nums.sort()
while left < right:
if nums[left] + nums[right] == k and left < right:
operation += 1
left += 1
right -= 1
elif nums[left] + nums[right] > k:
right -= 1
else:
left += 1
return operation
1
2
Runtime : 556ms (beats 81.92%)
Memory : 28.48MB (beats 97.28&)
Other code
Hashmap
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def maxOperations(self, nums: List[int], k: int) -> int:
op_set = defaultdict(int)
operation = 0
for n in nums:
if op_set[n]:
op_set[n] -= 1
operation += 1
else:
op_set[k - n] += 1
return operation
1
2
Runtime : 553ms (beats 85.11%)
Memory : 29.70MB (beats 9.51%)