相邻不同_贪心
2026/6/7 7:00:45 网站建设 项目流程

常复习常加深

lc3785

统计 nums 与 forbidden 对应位置相同元素,结合元素出现次数限制 (鸽巢 贪心_最多相同元素

计算使两数组对应位置元素匹配的最小交换次数

class Solution {
public:
int minSwaps(vector<int>& nums, vector<int>& forbidden) {
int n = nums.size();
unordered_map<int, int> total;
for (int x : nums) {
total[x]++;
}

unordered_map<int, int> cnt;
int k = 0, mx = 0;
for (int i = 0; i < forbidden.size(); i++) {
int x = forbidden[i];
if (++total[x] > n) {
return -1;
}
if (x == nums[i]) {
k++;
mx = max(mx, ++cnt[x]);
}
}

return max((k + 1) / 2, mx);
}
};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询