小核桃的数学挑战:用 C++ 求解数组连续子数组众数出现次数问题
```cpp #include <iostream> #include <vector> #include <unordered_map> using namespace std; int main() { int n, k; cin >> n >> k; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } long long ans = 0; // 枚举所有子数组 for (int i = 0; i < n; i++) { unordered_map<int, int> freq; // 记录每个数字出现的次数 int maxFreq = 0; // 当前子数组的众数出现次数 for (int j = i; j < n; j++) { freq[a[j]]++; maxFreq = max(maxFreq, freq[a[j]]); if (maxFreq >= k) { ans++; } } } cout << ans << endl; return 0; } ``` 代码说明: - 使用双重循环枚举所有子数组 `a[i..j]`。 - 用哈希表 `freq` 统计子数组中每个数字的出现次数。 - 变量 `maxFreq` 记录当前子数组的众数出现次数。 - 如果 `maxFreq >= k`,答案加一。 - 时间复杂度为 O(n²),适合 n 较小的情况(如 n ≤ 2000)。 - 对于更大的 n,需要优化算法,例如使用分治或双指针技巧。 ######[AI问答 | 320点数解答 | 2026-01-20 19:16:17]
- 工程师必知!8大策略克服API挑战 (百度文心 | 373点数解答 | 2023-11-09 18:34:35)181
- 深入解析洛谷打卡系统:规则揭秘与代码实现(字节豆包 | 316点数解答 | 2025-11-16 19:45:59)116
- 小核桃的数学挑战:用 C++ 求解数组连续子数组众数出现次数问题(DeepSeek | 320点数解答 | 2026-01-20 19:16:17)35
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)21
- Java实现Student类:计算三门课程总分、平均分、最高分与最低分( | 2332点数解答 | 2024-03-12 10:23:27)263
- Python代码实现创建并写入成绩信息到 scores.txt 文件( | 342点数解答 | 2024-04-21 15:53:03)353
- Python实现:输入学生数量计算各科成绩平均分、标准差与中位数(讯飞星火 | 715点数解答 | 2024-05-08 11:20:09)339
- 上海海洋大学yqhyzy:Python实现学生各科成绩统计值计算,含随机生成与精准输出! ( | 1398点数解答 | 2024-05-08 11:21:34)337
- 上海海洋大学yqhyzy:输入学生数算语数外成绩平均分、标准差与中位数( | 699点数解答 | 2024-05-08 11:24:39)324
- 上海海洋大学yqhyzy:Python实现n个学生各科成绩生成与统计值计算(百度文心 | 683点数解答 | 2024-05-08 11:25:45)292
- Python实现:依据标准判定中学学生附加科目测试等级并写入文件(讯飞星火 | 573点数解答 | 2024-06-22 23:14:14)343
- Python 实现:从键盘输入课程考分,精准输出最高分课程与分数!(讯飞星火 | 146点数解答 | 2024-06-23 23:29:29)509