2025-03-17 Daily Challenge

Today I have done leetcode's March LeetCoding Challenge with cpp.

March LeetCoding Challenge 17

Description

Divide Array Into Equal Pairs

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

class Solution {
public:
  bool divideArray(vector<int>& nums) {
    map<int, int> count;
    for(auto n : nums) {
       count[n] += 1;
    }
    for(auto [_, c] : count) {
      if(c & 1) return false;
    }
    return true;
  }
};

// Accepted
// 134/134 cases passed (10 ms)
// Your runtime beats 7.78 % of cpp submissions
// Your memory usage beats 49.04 % of cpp submissions (18.1 MB)