LeetCode 2206. Divide Array Into Equal Pairs
Question
You are given an integer array nums consisting of 2 * n integers.
You need to divide nums into n pairs such that:
- Each element belongs to exactly one pair.
- The elements present in a pair are equal.
Return true if nums can be divided into n pairs, otherwise return false.
Example 1:
Input: nums = [3,2,3,2,2,2]
Output: true
Explanation:
There are 6 elements in nums, so they should be divided into 6 / 2 = 3 pairs.
If nums is divided into the pairs (2, 2), (3, 3), and (2, 2), it will satisfy all the conditions.
Example 2:
Input: nums = [1,2,3,4]
Output: false
Explanation:
There is no way to divide nums into 4 / 2 = 2 pairs such that the pairs satisfy every condition.
Constraints:
- nums.length == 2 * n
- 1 <= n <= 500
- 1 <= nums[i] <= 500
Solution
Python
class Solution:
def divideArray(self, nums: List[int]) -> bool:
pairs = len(nums) / 2
count = 0
dict_nums = {}
for i in nums:
if i in dict_nums.keys():
dict_nums[i] += 1
else:
dict_nums[i] = 1
for k in dict_nums.keys():
if dict_nums[k] % 2 == 1:
return False
else:
count += dict_nums[k]
if count % pairs == 0:
return True
return False
Java