Leetcode Hot 100:入门ACM模式

ACM模式

ACM模式是一种需要自行处理输入输出的做题模式。
1、如何处理输入输出?

在这里插入图片描述


1.1、固定式输入分析

在这里插入图片描述


1)第一行输入三个数 x, y, z

longlong x, y, z; cin >> x >> y >> z;

2)前两行分别是整数 x, y

longlong x, y; cin >> x; cin >> y;// 或 cin >> x >> y; 也可以(cin 会自动跳过换行)

3)第一行一个整数 n,第二行输入 n 个整数

int n; cin >> n; vector<int>arr(n);for(int i =0; i < n; i++) cin >> arr[i];

1.2 不定式输入分析

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
while(getline(cin, line))

getline 会从输入里读一整行(直到换行符 \n)。
读成功返回 true;读到文件结束 EOF 返回 false → 循环结束。
所以每循环一次,就处理一行。

stringstream ss(line);

把这一整行字符串line变成一个“可像cin一样读”的流 ss。
之后就可以用ss >> num来解析行内的数字(自动按空格分隔)

while(ss >> num)

ss >> num的意思是:从ss这个输入流里读取一个整数到变量num。它的行为和 cin >> num很像,只不过数据来源不是键盘/标准输入,而是stringstream ss(line) 里那一行字符串。

2、输出分析

在这里插入图片描述


注意末尾,保证末尾没有空格或其他字符,否则可能出错。

在这里插入图片描述

3、OJ常见错误

在这里插入图片描述

4、面试中的ACM模式考察

在这里插入图片描述


记得把样例写出来,面试官就看你样例的输出的。
核心代码与输入输出分离,结构要清晰。

5、万能头文件
#include <bits/stdc++.h> 是GCC(GNU 编译器套件)中一个非标准的头文件,通常被称为“万能头文件”。它包含了C++标准库中几乎所有的头文件,比如 <iostream>、<vector>、<algorithm>、<string> 等等。只要包含了这一个文件,你就可以使用大部分 C++ 标准库的功能,而无需逐个去写许多 #include 语句。

塔子哥hot100入门必刷

1、数组的读入

题目内容:
给定一个整数数组 nums,求解数组的和。

输入共两行。
第一行为一个整数n,代表数组nums的长度。
第二行为n个整数,即数组的元素。

输出数组的和。

#include<bits/stdc++.h>usingnamespace std;intsummary(const vector<int>& nums){int sum=0;for(int i=0;i<nums.size();i++){ sum+=nums[i];}return sum;}intmain(){int n; cin>>n; vector<int>nums(n);for(int i=0;i<n;i++) cin>>nums[i]; cout<<summary(nums)<<endl;return0;}

2、链表的读入

给定一个整数数组nums,要求先构建一个链表,然后遍历链表并输出所有元素。

在这里插入图片描述


在一些涉及链表的面试题(如翻转、合并、排序链表)时,本题的基础代码可以作为模板。

#include<bits/stdc++.h>usingnamespace std;// 定义链表节点结构structListNode{int val; ListNode* next;ListNode(int x):val(x),next(nullptr){}};// 创建链表并返回头结点 ListNode*createLinkedList(const vector<int>& nums){if(nums.empty())returnnullptr; ListNode* head =newListNode(nums[0]); ListNode* cur = head;//size_t 是无符号类型,其取值范围至少为[0, SIZE_MAX],通常足够表示任何对象的大小for(size_t i =1; i < nums.size(); i++){ cur->next =newListNode(nums[i]); cur = cur->next;}return head;}// 遍历链表并输出voidprintLinkedList(ListNode* head){ ListNode* cur = head;while(cur){ cout << cur->val << endl; cur = cur->next;}}intmain(){int n; cin >> n;// 读取数组长度 vector<int>nums(n);for(int i =0; i < n; i++){ cin >> nums[i];// 读取数组元素} ListNode* head =createLinkedList(nums);// 创建链表printLinkedList(head);// 遍历链表并输出return0;}

3、二叉树的读入与构建

在这里插入图片描述
structTreeNode{int val; TreeNode* left; TreeNode* right;TreeNode(int x):val(x),left(nullptr),right(nullptr){}};

未完待续

Read more

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(八)

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(八)

第15章 模型融合与集成策略 在机器学习竞赛和实际应用中,模型融合(Model Ensemble)是提升预测性能的利器。通过组合多个不同的基模型,集成策略能够综合各个模型的优势,抵消单个模型的偏差和方差,从而获得比任何单一模型更稳定、更准确的预测结果。在医疗AI领域,模型融合同样具有重要价值——面对复杂多模态的医疗数据,单一模型往往难以全面捕捉所有信息,而融合多个异质模型可以提升诊断的鲁棒性和准确性。本章将从集成学习的基本思想出发,系统介绍常见的模型融合方法,包括投票法、平均法、Stacking、Blending等,并通过实战案例展示如何构建融合模型来提升疾病预测性能。 15.1 集成学习的基本思想 集成学习(Ensemble Learning)的核心思想是“三个臭皮匠,顶个诸葛亮”——通过结合多个学习器来完成学习任务,通常可以获得比单一学习器更优越的泛化性能。根据个体学习器的生成方式,集成学习主要分为两大类: * Bagging:并行训练多个独立的基学习器,然后通过平均或投票进行结合。典型代表是随机森林。Bagging主要降低方差。 * Boosting:串行训练基学习

By Ne0inhk
人工智能:自然语言处理在教育领域的应用与实战

人工智能:自然语言处理在教育领域的应用与实战

人工智能:自然语言处理在教育领域的应用与实战 学习目标 💡 理解自然语言处理(NLP)在教育领域的应用场景和重要性 💡 掌握教育领域NLP应用的核心技术(如智能问答、作业批改、个性化学习) 💡 学会使用前沿模型(如BERT、GPT-3)进行教育文本分析 💡 理解教育领域的特殊挑战(如多学科知识、学生认知差异、数据隐私) 💡 通过实战项目,开发一个智能问答系统应用 重点内容 * 教育领域NLP应用的主要场景 * 核心技术(智能问答、作业批改、个性化学习) * 前沿模型(BERT、GPT-3)在教育领域的使用 * 教育领域的特殊挑战 * 实战项目:智能问答系统应用开发 一、教育领域NLP应用的主要场景 1.1 智能问答 1.1.1 智能问答的基本概念 智能问答是通过自然语言与用户进行交互,回答用户问题的程序。在教育领域,智能问答的主要应用场景包括: * 课程问答:回答课程相关的问题(如“什么是机器学习”

By Ne0inhk
2026年3月18日 AI 每日动态

2026年3月18日 AI 每日动态

1. 【AI Coding 工具】Claude Code 终于有了"长期记忆"——claude-mem 爆红 Claude Code 用起来顺手,但每次开新会话就像把同事的记忆清零——项目背景要重新交代,之前做过的决策一问三不知。现在有个叫 claude-mem 的开源插件彻底改变了这件事。 它的工作方式很直接:自动抓取每次会话里的工具调用记录(读了哪些文件、改了哪些代码、跑了什么命令),会话结束后用 AI 把这些信息压缩成结构化摘要,下次开工时自动注入进来。一万 Token 的操作记录,最终压缩到 500 Token 左右,同时还支持自然语言检索历史("上次那个 React 重复渲染是怎么解的?")。 目前已有超 3 万人收藏,宣称能节省 90% 的 Token

By Ne0inhk
2026年AI Agent框架王者:OpenClaw登顶GitHub TOP1,16大小龙虾生态项目(含OpenClawChinese汉化版)技术特性与GitHub地址汇总

2026年AI Agent框架王者:OpenClaw登顶GitHub TOP1,16大小龙虾生态项目(含OpenClawChinese汉化版)技术特性与GitHub地址汇总

🦞 "OpenClaw龙虾家族"全员集结!OpenClaw登顶GitHub TOP1,Kimi/miniMax/阿里/百度/字节/网易集体入局,16大小龙虾框架谁是你的菜? 🔥 历史性时刻:2026年3月,OpenClaw以26万+ GitHub Stars正式超越React(24.3万星)和Linux(21.8万星),登顶全球开源项目TOP1!但这只是开始——随着Kimi AI、MiniMax、阿里、百度、字节、网易等巨头集体入局,加上NullClaw、OpenFang等新锐开源项目崛起,一个庞大的 “龙虾家族” 正在形成。 生态全景数据:⭐ OpenClaw:26万+ Stars,GitHub史上最快增长记录🌙 KimiClaw:Moonshot AI官方云托管,40GB云存储+5000技能⚡ MaxClaw:MiniMax出品,10秒部署,

By Ne0inhk