豆包    LeetCode 3785. 避免禁用值的最小交换次数 C语言实现
题目题意两个长度均为 n 的数组 nums 和 forbidden 可任意交换 nums 中的元素要求最终每个位置 i 满足 nums[i] ! forbidden[i] 返回最少交换次数无解返回 -1 。核心思路1. 无解判定若任意数值在 nums 和 forbidden 中的总出现次数 n根据鸽巢原理必然存在位置无法满足条件返回 -1 。2. 坏列统计统计满足 nums[i] forbidden[i] 的位置坏列总数 badSum 以及坏列中出现次数最多的数值的次数 maxBad 。3. 最小交换次数答案为 max(⌈badSum / 2⌉, maxBad)- 两两交换不同值的坏列每次消除 2 个坏列至少需要 ⌈badSum/2⌉ 次- 若某数值的坏列过多每个坏列都需要与外部好位置交换至少需要 maxBad 次。C 语言实现排序法简洁可靠c#include stdlib.hstatic int cmpInt(const void* a, const void* b) {int x *(const int*)a;int y *(const int*)b;return (x y) - (x y);}int minSwaps(int* nums, int numsSize, int* forbidden, int forbiddenSize) {int n numsSize;// 1. 合并两数组排序后统计总频率判断无解int* total (int*)malloc(2 * n * sizeof(int));for (int i 0; i n; i) total[i] nums[i];for (int i 0; i n; i) total[n i] forbidden[i];qsort(total, 2 * n, sizeof(int), cmpInt);int impossible 0;for (int i 0; i 2 * n; ) {int j i;while (j 2 * n total[j] total[i]) j;if (j - i n) {impossible 1;break;}i j;}free(total);if (impossible) return -1;// 2. 收集所有坏列nums[i] forbidden[i]int* badVals (int*)malloc(n * sizeof(int));int badSum 0;for (int i 0; i n; i) {if (nums[i] forbidden[i]) {badVals[badSum] nums[i];}}if (badSum 0) {free(badVals);return 0;}// 排序后统计坏列中最多的重复次数qsort(badVals, badSum, sizeof(int), cmpInt);int maxBad 0;for (int i 0; i badSum; ) {int j i;while (j badSum badVals[j] badVals[i]) j;if (j - i maxBad) maxBad j - i;i j;}free(badVals);int pairSwaps (badSum 1) / 2; // 向上取整return pairSwaps maxBad ? pairSwaps : maxBad;}复杂度- 时间O(n \log n)主要为两次排序的开销对于 n \le 10^5 完全满足时限。- 空间O(n)用于存储合并数组与坏列数组。需要我补充一份线性时间的拉链法哈希表版本吗

相关新闻

广西专升本电子与信息大类考纲深度解析:电工、C语言、网络备考全攻略

广西专升本电子与信息大类考纲深度解析:电工、C语言、网络备考全攻略

1. 项目概述:一份考纲的深度价值如果你正在准备广西的“电子与信息大类”专升本考试,手头除了几本教材和一堆零散的真题,是不是总觉得复习起来像在迷雾里打转,抓不住重点?或者,你是一位辅导老师&#xff0c…

2026/10/28 4:24:14 阅读更多 →
2026年智能手环技术趋势与演进分析

2026年智能手环技术趋势与演进分析

行业标准引入2026年,智能手环已从单纯的计步设备演变为承载物联网入口、生命体征监测、工业安全管理等多重职能的复合型智能终端。伴随AIoT技术的深化应用,行业对智能手环的技术指标、数据服务能力及场景适配性提出了新的标准要求。本文以“2026年智能手…

2026/10/27 12:40:00 阅读更多 →
千问    LeetCode 3785. 避免禁用值的最小交换次数 Rust实现

千问 LeetCode 3785. 避免禁用值的最小交换次数 Rust实现

在 Rust 中实现这道题,我们需要利用 HashMap 来进行频次统计。由于 Rust 的所有权机制和严格的类型检查,我们在遍历和更新哈希表时,通常会使用 entry API 来优雅地处理键不存在的情况。Rust 代码实现use std::collections::HashMap;impl Solu…

2026/10/25 6:42:57 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →