给你一个整数数组 nums ,它包含 2 * n 个整数。

    你需要将 nums 划分成 n 个数对,满足:

    每个元素 只属于一个 数对。
    同一数对中的元素 相等 。
    如果可以将 nums 划分成 n 个数对,请你返回 true ,否则返回 false 。

    示例 1:

    输入:nums = [3,2,3,2,2,2]
    输出:true
    解释:
    nums 中总共有 6 个元素,所以它们应该被划分成 6 / 2 = 3 个数对。
    nums 可以划分成 (2, 2) ,(3, 3) 和 (2, 2) ,满足所有要求。
    示例 2:

    输入:nums = [1,2,3,4]
    输出:false
    解释:
    无法将 nums 划分成 4 / 2 = 2 个数对且满足所有要求。

    提示:

    nums.length == 2 * n
    1 <= n <= 500
    1 <= nums[i] <= 500


    1. class Solution {
    2. //用哈希表记录每个数出现的次数,判断奇偶数即可
    3. public boolean divideArray(int[] nums) {
    4. int n = nums.length;
    5. int m = n / 2;
    6. Map<Integer, Integer> map = new HashMap<>();
    7. for (int i = 0; i < n; ++i) {
    8. if (map.containsKey(nums[i])) {
    9. int tem = map.get(nums[i]);
    10. if ((tem + 1) % 2 == 0) m --;
    11. map.put(nums[i], tem + 1);
    12. } else map.put(nums[i], 1);
    13. }
    14. return m == 0;
    15. }
    16. }