首页 🍒LeetCode,🐶算法

题目

题目链接

思路

先用map把第一组的数字都存起来,然后遍历第二组,相同的数字最后会变成0。然后遍历map,不等于0的数就是两组都没有的数,但是两组中每两个不相同的数为一次,所以最后的结果要 / 2

class Solution {
public:
    int minimumSwitchingTimes(vector<vector<int>>& source, vector<vector<int>>& target) {
        map<int, int> mp;
        int res = 0, n = source.size(), m = source[0].size();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                mp[source[i][j]]++;
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                mp[target[i][j]]--;
            }
        }
        for (auto& m : mp) {
            if (m.second != 0) {
                res += abs(m.second);
            }
        }
        return res / 2;
    }
};



文章评论