C++ 实现:求解使序列为空的最小操作次数及代码优化要点
```cpp #include <iostream> #include <vector> #include <unordered_map> using namespace std; int minOperationsToEmptyArray(int n, const vector<int>& a) { unordered_map<int, int> countMap; for (int num : a) { countMap[num]++; } // 记录最大连续相同元素长度 int maxConsecutive = 0; int currentConsecutive = 1; for (int i = 1; i < n; ++i) { if (a[i] == a[i - 1]) { currentConsecutive++; } else { maxConsecutive = max(maxConsecutive, currentConsecutive); currentConsecutive = 1; } } maxConsecutive = max(maxConsecutive, currentConsecutive); // 如果存在超过2个的连续相同元素,直接返回这些元素的数量除以2向上取整 if (maxConsecutive > 2) { return (n + 1) / 2; } // 如果所有元素都不同或者最多有两个连续相同的元素 int uniqueElements = countMap.size(); if (uniqueElements == n) { return n - 1; } else { return uniqueElements; } } int main() { int t; cin >> t; while (t--) { int n; cin >> n; vector<int> a(n); for (int& num : a) { cin >> num; } cout << minOperationsToEmptyArray(n, a) << endl; } return 0; } ``` 代码 - 使用 `unordered_map` 统计每个元素出现次数。 - 遍历数组,记录最大连续相同元素长度。 - 根据最大连续相同元素长度判断操作次数。 - 对于测试用例,循环读入数据并输出结果。 额外需要注意的地方: 1. 输入数据量较大时,使用快速读写方法优化性能。 2. 处理边界情况,如数组长度为1或所有元素相同。 3. 考虑到内存限制,避免不必要的空间开销。 ######[AI写代码神器 | 462点数解答 | 2024-12-21 17:35:25]
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)70
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)70
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)182
- 旅行售货员问题:详细步骤剖析与贪心算法Python代码实现(字节豆包 | 444点数解答 | 2024-12-17 03:32:59)275
- Dev C++ 实现旅行售货员问题:最小路程路线代码与详细解析 (字节豆包 | 448点数解答 | 2024-12-17 03:33:42)175
- C++ 求解 P1020 小核桃与删除字符串问题:双指针与枚举策略 (字节豆包 | 330点数解答 | 2026-02-07 18:40:10)23
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)457
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)354
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)332
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)240