当前位置: 首页 > news >正文

练习题题目

练习题答案 · 上篇(第1~8题)

来源:练习题.docx · 代码紧凑含关键注释,可直接复制到 Dev-C++ 运行。

第1题 出现次数最多的数

【题目】给定n个整数,找出出现次数最多的数;次数相同则输出数值最小的。

【参考代码】

#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int main() {
int n; cin >> n;
map<int,int> cnt; //
统计频次
while (n--) { int x; cin >> x; cnt[x]++; }
int best = cnt.begin()->first, mx = 0;
for (auto &p : cnt)
if (p.second > mx || (p.second == mx && p.first < best))
mx = p.second, best = p.first;
cout << best << endl;
return 0;
}

第2题 相反数统计

【题目】n个互不相同整数,统计有多少对互为相反数。

【参考代码】

#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n; cin >> n;
unordered_set<int> s;
for (int i = 0, x; i < n; i++) { cin >> x; s.insert(x); }
int ans = 0;
for (int x : s) if (x != 0 && s.count(-x)) ans++;
cout << ans / 2 << endl; //
每对计两次,除2
return 0;
}

第3题 相邻数对

【题目】n个互不相同整数,统计差的绝对值为1的数对个数。

【参考代码】

#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n; cin >> n;
unordered_set<int> s;
for (int i = 0, x; i < n; i++) { cin >> x; s.insert(x); }
int ans = 0;
for (int x : s) if (s.count(x + 1)) ans++; //
只统计x < x+1
cout << ans << endl;
return 0;
}

第4题 数字频率排序

【题目】按出现次数从大到小输出每个不同整数及次数;次数相同则整数小的先输出。

【参考代码】

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n; cin >> n;
map<int,int> cnt;
while (n--) { int x; cin >> x; cnt[x]++; }
vector<pair<int,int>> v(cnt.begin(), cnt.end());
sort(v.begin(), v.end(), [](auto &a, auto &b) {
if (a.second != b.second) return a.second > b.second;
return a.first < b.first;
});
for (auto &p : v) cout << p.first << " " << p.second << endl;
return 0;
}

第5题 有序数组查找

【题目】递增数组,m次查询,用折半查找判断x是否存在,输出YES/NO。

【参考代码】

#include <iostream>
#include <vector>
using namespace std;
bool binSearch(const vector<int> &a, int x) {
int l = 0, r = (int)a.size() - 1;
while (l <= r) {
int m = (l + r) / 2;
if (a[m] == x) return true;
if (a[m] < x) l = m + 1; else r = m - 1;
}
return false;
}
int main() {
int n, m; cin >> n >> m;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
while (m--) {
int x; cin >> x;
cout << (binSearch(a, x) ? "YES" : "NO") << endl;
}
return 0;
}

第6题 线性探测哈希表

【题目】H(x)=x mod p,线性探测插入,输出p个位置,空位-1。

【参考代码】

#include <iostream>
#include <vector>
using namespace std;
int main() {
int p, n; cin >> p >> n;
vector<int> h(p, -1);
while (n--) {
int x; cin >> x;
int pos = x % p;
while (h[pos] != -1) pos = (pos + 1) % p; //
线性探测
h[pos] = x;
}
for (int i = 0; i < p; i++) {
if (i) cout << " ";
cout << h[i];
}
cout << endl;
return 0;
}

第7题 平方探测哈希表

【题目】H(x)=x mod p,平方探测(+1²,-1²,+2²,-2²…),输出每个数最终插入位置,失败-1。

【参考代码】

#include <iostream>
#include <vector>
using namespace std;
int main() {
int p, n; cin >> p >> n;
vector<int> h(p, -1);
while (n--) {
int x; cin >> x;
int pos = -1;
int home = x % p;
for (int i = 0; i < p; i++) {
int d = (i % 2 ? -1 : 1) * ((i + 1) / 2);
d = (d * d) % p;
int t = (home + d) % p; if (t < 0) t += p;
if (h[t] == -1) { h[t] = x; pos = t; break; }
}
cout << pos << endl;
}
return 0;
}

第8题 单词去重

【题目】n个单词,大小写敏感,输出不同单词个数。

【参考代码】

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
int n; cin >> n;
set<string> st;
while (n--) { string w; cin >> w; st.insert(w); }
cout << st.size() << endl;
return 0;
}

http://www.cnnetsun.cn/news/2692172.html

相关文章:

  • 5个关键特性深度解析:RTL8821CU Linux驱动如何让USB Wi-Fi适配器在Linux上完美运行
  • 如何解决百度网盘Mac版下载慢:终极快速方案
  • 用Arduino和ESP8266体验加密货币挖矿:Duino-Coin项目实战指南
  • 还在手动逐句转写录音文字?2026年这3款AI录音识别转文字工具,5分钟搞定2小时录音
  • 老师整理上课录屏必备!2026年5款视频转文字提取工具,10分钟生成可编辑课件文稿
  • 基于PIR传感器与Arduino的智能安防报警系统DIY指南
  • VCF 和 vSphere 一样吗?核心区别与企业选型完整指南
  • HexEdit:高效二进制文件编辑与数据查看的完整解决方案
  • 基于SAMD与ESP8266构建Wi-Fi远程控制BadUSB:硬件选型、开发实战与安全攻防解析
  • Arduino驱动D型LCD:旧手表屏幕的逆向工程与底层驱动实践
  • 绝区零自动化工具终极指南:5大核心功能实现智能游戏辅助
  • ☕ Java 高并发进阶(一):从底层硬件底座到线程生命周期剖析
  • 2026不锈钢煤矿胶管接头厂推荐万熙顺被评为行业top排行榜前十?
  • 别再只ping了!用华为eNSP搭建一个带域名解析的迷你‘内网’实验环境
  • 技术解密:BaiduNetdiskPlugin-macOS 逆向工程与SVIP破解深度实践
  • 告别手动调参,用 numpy-ml 实现自动化超参数优化
  • 3步构建科研知识管理系统:Obsidian模板库从入门到精通
  • LinkSwift网盘直链下载助手:多平台API集成与高效下载架构深度解析
  • 终极指南:如何在Windows 11上高效配置TigerVNC远程桌面?
  • BaiduNetdiskPlugin-macOS深度解析:技术方案与效率提升实践
  • iText7 HTML转PDF避坑指南:中文字体、大文件响应、水印位置,我遇到的坑都帮你填好了
  • VisualCppRedist AIO:一站式解决Windows软件运行依赖的终极方案
  • YimMenu终极指南:GTA5免费辅助工具快速上手与安全使用
  • 工厂“死亡率“有多高?天下工厂产业研究院测算:新办厂头三年是最大的坎
  • 抖音下载神器:5分钟掌握无水印批量下载技巧,轻松收藏心仪内容 [特殊字符]
  • 【Sora 2复杂场景生成避坑手册】:3类致命提示工程错误导致生成崩溃,附NASA火星车仿真验证清单
  • 用 AI 这件事,90% 的人卡在第一步,深度长文,耐心看完
  • 百度网盘自动化离线下载:3步实现磁力链接与种子文件云端转存
  • 终极指南:3步快速解决Mac Boot Camp驱动安装难题,免费自动化工具Brigadier详解
  • 2026PDF转PNG最全教程:在线、软件、手机方法手把手教你