【嵌入式基本功】单片机嵌入式学习路线

学习 单片机C语言编程 是嵌入式开发的重要基础,尤其对于想要从事物联网、智能硬件、自动化控制等领域的工程师来说至关重要。下面是一份系统、清晰的 单片机C语言学习路线,从零基础入门到能够独立开发项目,适合学生、电子爱好者或转行开发者。


一、学习目标

通过本路线,你将能够:

  • 掌握 C 语言基础及在单片机中的应用;

  • 熟悉至少一款主流单片机(如 STM32、51 单片机、AVR、ESP32 等);

  • 能够使用 C 语言进行单片机外围设备控制(LED、按键、LCD、传感器等);

  • 理解中断、定时器、串口通信等核心功能;

  • 能独立完成小型嵌入式项目(如温控、智能家居模块、小车控制等)。


二、学习路线图(推荐顺序)

阶段 1:C语言基础(必备)

✅ 如果你已有 C 语言基础,可适当跳过或复习。

学习内容:

  • 数据类型、变量与常量

  • 运算符与表达式

  • 流程控制:if、switch、for、while、do-while

  • 数组与字符串

  • 函数的定义与调用

  • 指针(重点!单片机开发中大量使用)

  • 结构体(struct)

  • 宏定义与条件编译(了解)

推荐资源:

  • 书籍:《C程序设计》(谭浩强)、《C Primer Plus》

  • 在线教程:菜鸟教程、慕课网、B站搜索"C语言入门"

  • 编程练习:使用 PC 编译器如 GCC / Dev-C++ / VS Code 练习基础代码


阶段 2:了解单片机基础知识

学习内容:

  • 什么是单片机?常见单片机种类(51、STM32、AVR、ESP32等)

  • 单片机的基本结构:CPU、RAM、ROM、I/O口、定时器、中断、串口等

  • 单片机如何工作:取指、执行、控制外设

  • 开发单片机需要哪些工具:

    • 编程器/调试器(如 ST-Link、USB-TTL、下载工具)

    • 开发环境(Keil、IAR、STM32CubeIDE、VSCode+插件等)

    • 电路基础:电压、电流、电阻、LED、开关等

推荐入门单片机:

  • 51单片机(如 STC89C52):简单易学,适合上手,资料丰富,价格便宜;

  • STM32(如 STM32F103C8T6 "Blue Pill"):功能强大,适合进阶,Cortex-M内核,广泛应用;

  • ESP32:集成 Wi-Fi + 蓝牙,适合 IoT 项目,开发简单(可用 Arduino 或 ESP-IDF);


阶段 3:51单片机 + C语言实战(推荐入门)

学习内容:

  • Keil C51 或 SDCC 开发环境搭建

  • GPIO(通用输入输出)控制:点灯、控制按键

  • 定时器与延时函数

  • 中断系统(外部中断、定时器中断)

  • 串口通信(UART,与电脑通信)

  • 简单外设:数码管、蜂鸣器、LCD1602等

实践项目:

  • LED闪烁

  • 按键控制灯亮灭

  • 定时器控制LED流水灯

  • 串口发送数据到电脑

  • LCD显示字符或传感器数值


阶段 4:STM32单片机 + C语言(进阶主流选择)

STM32 是目前业界非常主流的 32 位单片机,基于 ARM Cortex-M 内核,性能强大,适合做复杂项目。

学习内容:

  • STM32CubeMX 工具使用(图形化配置外设)

  • HAL库 或 标准外设库(推荐先学 HAL,简单易用)

  • GPIO、定时器、中断、PWM、ADC、DAC

  • 串口(USART)、I2C、SPI 通信协议

  • 使用 IDE:STM32CubeIDE、Keil MDK、IAR、VSCode+插件

开发方式推荐:

  • STM32CubeMX + HAL库 + STM32CubeIDE(最容易上手,官方推荐)

  • 或者学习标准外设库(更接近底层,适合深入理解)

实践项目:

  • 按键控制LED、PWM调光

  • 使用ADC读取电位器/传感器

  • 通过串口与上位机通信

  • I2C连接OLED屏幕显示信息

  • 使用SPI驱动传感器(如陀螺仪)


阶段 5:ESP32 或其他高性能单片机(可选/物联网方向)

如果你对 Wi-Fi、蓝牙、物联网感兴趣,可以学习 ESP32,它内置 Wi-Fi + 蓝牙,支持 Arduino 开发或 ESP-IDF。

学习内容:

  • Arduino IDE 开发 ESP32(简单,适合快速上手)

  • 或 ESP-IDF(Espressif 官方框架,C语言,更底层强大)

  • Wi-Fi 连接、MQTT、HTTP通信

  • 蓝牙 BLE

  • 传感器数据上传云端(如通过 Wi-Fi 发送到手机/服务器)


阶段 6:综合项目实战(能力提升)

推荐项目(从简单到复杂):

  1. 智能小车(电机控制、红外避障、超声波测距)

  2. 温湿度监测系统(DHT11/DHT22 + OLED/串口)

  3. 电子时钟(RTC实时时钟 + LCD显示)

  4. 智能家居控制(通过手机/网页/Wi-Fi控制灯光、电器)

  5. 多功能开发板(自己设计功能集合:按键、LED、传感器、通信等)

  6. 基于RTOS的简单任务调度(如 FreeRTOS,适用于 STM32)


三、学习工具与环境

开发工具:

  • 代码编辑/IDE:

    • Keil uVision(51 / STM32)

    • STM32CubeIDE(STM32官方IDE,基于Eclipse)

    • Arduino IDE(适合ESP32/Arduino兼容板)

    • VS Code(配合插件,灵活强大)

    • PlatformIO(跨平台开发工具,支持多种芯片和IDE)

  • 编程下载工具:

    • ST-Link(STM32)

    • USB-TTL(用于串口通信 / ESP32)

    • 烧录软件:ST-Link Utility、Flash Download Tools等

  • 仿真与调试:

    • 逻辑分析仪(如 Saleae)

    • 串口助手(如 SSCom、Putty、MobaXterm)

    • J-Link、ST-Link 用于在线调试


四、学习资源推荐

书籍:

  • 《C程序设计》------谭浩强(C语言基础)

  • 《原子教你玩STM32》------正点原子(适合STM32初学者)

  • 《嵌入式实时操作系统:RT-Thread设计与实现》(进阶)

  • 《单片机原理与应用》------各类高校教材

视频课程(B站/慕课网/网易云课堂):

  • B站搜索:"51单片机入门"、"STM32 教程"、"ESP32 入门"

  • 慕课网、极客时间、硬禾学堂等平台也有专业课程

社区与论坛:

  • CSDN、电子发烧友论坛、STM32中文社区

  • GitHub(开源项目学习)

  • 小木虫、知乎(搜索"单片机学习"、"嵌入式入门")


五、学习建议与心态

  1. 动手 > 看书:单片机学习最重要的是实践,每学一个知识点,都要动手写代码、烧录、看效果;

  2. 从简单开始,循序渐进:不要一开始就搞复杂项目,先点亮一个LED,再逐步增加功能;

  3. 理解原理,不死记代码:了解硬件工作原理,知道代码背后的意义;

  4. 多做项目,积累经验:学完基础后,一定要做几个完整的项目来整合知识;

  5. 坚持与兴趣:嵌入式开发入门有点门槛,但非常有趣且实用,保持好奇心和持续学习的动力。


六、总结学习路线一览

阶段 内容 目的
1 C语言基础 掌握编程语言核心,为单片机开发打基础
2 单片机原理入门 了解单片机是什么、有什么、怎么用
3 51单片机实战 入门级实操,简单易学,快速上手
4 STM32开发(推荐) 主流32位单片机,功能强大,职业发展主流方向
5 ESP32 / 物联网方向(可选) 适合无线通信、智能家居、云连接项目
6 综合项目实战 整合知识,锻炼系统设计、问题解决能力

学习单片机时,电路知识是非常重要的基础,尤其是在你开始接触硬件连接、传感器、驱动电路、电源设计等内容时。很多初学者会陷入"代码能跑,但不知道电路为什么这么接"的困境,甚至因为电路设计不当导致单片机损坏或者功能无法实现。

下面我将从 "为什么要学电路"、"单片机学习中需要哪些电路知识"、"如何高效学习电路"、"常用电路实例与分析" 几个方面,系统地为你讲解 "学单片机应如何学习电路",帮助你建立"软硬结合"的开发思维 🔌💡。


一、为什么学单片机要懂电路?

单片机本身是一个芯片,它不能单独工作,必须与外围电路配合:

  • 电源电路:给单片机供电(如5V或3.3V)

  • 时钟电路:提供运行节拍(如晶振电路)

  • 复位电路:确保单片机正常启动

  • I/O口电路:连接LED、按键、传感器等

  • 通信电路:如UART、I2C、SPI接口电路

  • 驱动电路:如驱动电机、继电器、蜂鸣器等需要功率的器件

  • 保护电路:防止过流、过压、反接、静电等损坏芯片

👉 结论:不懂电路,你写的代码可能无法正常运行,甚至烧坏芯片!


二、学单片机,你需要掌握哪些电路知识?

下面是你作为单片机学习者,在初期到进阶阶段应该逐步掌握的电路知识,按重要性和常用程度排序:


✅ 1. 基础电路概念(必懂)

这些是你理解所有电路的基础,建议先掌握:

概念 说明 重要性
电压 (V) 电势差,单位伏特(V),如3.3V、5V ⭐⭐⭐⭐⭐
电流 (I) 电荷流动的速率,单位安培(A),如mA级 ⭐⭐⭐⭐
电阻 (R) 限制电流,单位欧姆(Ω) ⭐⭐⭐⭐⭐
欧姆定律U = I × R 最基础的电路公式 ⭐⭐⭐⭐⭐
电源正负极 / 接地(GND) 电路的参考零电位 ⭐⭐⭐⭐⭐
串联 / 并联电路 影响电压和电流的分配 ⭐⭐⭐⭐
二极管 单向导电,常用于保护电路 ⭐⭐⭐
电容 储能、滤波、去耦 ⭐⭐⭐⭐
发光二极管(LED) 单片机最常用的输出设备之一 ⭐⭐⭐⭐

✅ 2. 单片机最小系统电路(必学)

这是让一块单片机正常工作的最基本电路,你必须懂:

模块 说明
电源电路 为单片机提供稳定的 3.3V 或 5V(如通过 USB 或稳压芯片)
晶振电路(时钟) 提供单片机运行的节拍(如 8MHz、11.0592MHz、12MHz 等)
复位电路 保证单片机上电或手动复位时能正确初始化
下载/调试接口 如 UART、SWD、JTAG,用于烧录程序

✅ 建议:初学时直接使用开发板(如 STM32、51 开发板),但一定要理解这些电路的作用,最好能自己画一遍最小系统原理图。


✅ 3. GPIO(通用输入输出)与外围设备连接

GPIO 是单片机与外界交互的桥梁,比如控制 LED、读取按键:

应用 说明 常见电路
控制LED 单片机IO口 → 限流电阻 → LED → GND 必学
读取按键 按键一端接IO口,一端接地,用上拉/下拉电阻 必学
驱动蜂鸣器 有源/无源蜂鸣器,可能需要三极管或MOSFET驱动 推荐掌握
连接传感器(如 DHT11、光敏电阻) 了解数字/模拟信号输入 推荐掌握

🎯 重点:IO口不能直接驱动大电流负载(如电机、继电器),需要加驱动电路!


✅ 4. 驱动电路(重要!)

很多外设(如电机、继电器、LED灯组)需要较大的电流,单片机IO口一般只能提供几毫安,必须加驱动

器件 驱动方式 说明
LED灯组 / 继电器 三极管(如 S8050)、MOSFET(如 2N7000) 用IO口控制三极管基极,三极管放大电流
电机(直流电机、步进电机) L298N、TB6612、MOS桥 需要专门驱动模块或芯片
蜂鸣器(有源/无源) 三极管驱动或专用驱动IC 区分有源/无源很重要

✅ 学会看懂驱动电路图,学会使用 NPN / PNP 三极管、MOSFET。


✅ 5. 通信接口电路(提升能力)

单片机常与其他设备通信,比如:

接口 说明 常见应用
UART(串口) 单片机与电脑/蓝牙模块/GPS等通信 必学
I2C 连接传感器(如 MPU6050、OLED) 推荐掌握
SPI 高速通信,如连接 Flash、显示屏 推荐掌握
USB / CAN / Ethernet 更高级通信,进阶学习 可以后学

🎯 通信电路往往涉及电平匹配、上拉电阻、终端电阻等细节,要理解原理。


✅ 6. 电源管理与保护电路(进阶)

电路 作用 说明
稳压电路 如 LM7805(5V)、AMS1117-3.3(3.3V) 把高电压转为单片机可用电压
电源去耦电容 滤波、稳定电压,防干扰 每个芯片电源引脚附近都应有
反向保护二极管 防止电源接反烧毁电路 常用在电池供电系统中
保险丝 / 自恢复保险 过流保护 保护整个系统

三、如何高效学习电路?(针对单片机学习者)

方法 1:从单片机最小系统开始,动手画图 + 实物对照

  • 找一份 51 或 STM32 的最小系统原理图,自己看懂每个元件的作用;

  • 对照开发板原理图,理解实际电路怎么连的;

  • 推荐工具:立创EDA(国产免费)、KiCad、EasyEDA,可以在线画原理图。

方法 2:学一个电路,就动手做一个

项目 涉及电路 学习目标
LED闪烁 GPIO + LED + 限流电阻 IO输出、电阻作用
按键控制灯 GPIO输入 + 上拉电阻 按键消抖、输入电路
PWM调光 GPIO + MOSFET + LED PWM输出、驱动电路
电机控制 L298N驱动 + 直流电机 H桥驱动、电机电路
传感器读取 I2C/SPI传感器 + 单片机 通信与接口电路

✅ 推荐:每学一个功能,就画出它的电路图,并在开发板上实现。


方法 3:结合仿真软件学习(零风险练电路)

在真正焊接之前,可以用电路仿真软件先验证:

工具 说明
Proteus 支持单片机仿真 + 电路(适合51/STM32仿真)
Multisim 传统电路仿真,适合基础电路学习
Tinkercad(Arduino电路仿真) 在线、简单易用
立创EDA / EasyEDA 在线画原理图 + PCB,国产好用

方法 4:看懂别人的电路图(反向学习)

  • 下载开发板的 原理图(Schematic)和PCB图

    • 比如正点原子 STM32F103 开发板、STC89C52、Arduino Uno
  • 使用 立创商城、LCSC、淘宝商品页,很多模块都有原理图

  • 学会看:电源、信号、接口、芯片外围电路


四、学习资源推荐

📚 书籍推荐(电路基础 + 单片机电路)

  1. 《电路分析基础》------适合建立电路理论基础

  2. 《电子技术基础(模拟部分 & 数字部分)》------康华光(经典高校教材)

  3. 《单片机外围电路设计》------针对传感器、通信、驱动电路

  4. 《嵌入式硬件设计》------进阶硬件设计思路

🎥 视频推荐(B站/YouTube)

  • B站搜索:"单片机最小系统讲解""三极管驱动电路""STM32电路设计"

  • 推荐UP主:硬件茶谈、硬核电子、电路城、稚晖君(大神级)


五、总结:学单片机,电路该怎么学?

步骤 建议
1 先掌握基础电学概念(电压、电流、电阻、欧姆定律)
2 理解单片机最小系统(电源、晶振、复位、下载电路)
3 重点学习GPIO与外围设备连接(LED、按键、传感器)
4 学会驱动电路设计(三极管/MOSFET驱动电机/LED灯组)
5 了解通信接口电路(UART、I2C、SPI)
6 动手实践 + 画电路图 + 仿真/实测,每学一个功能,做一个项目
7 逐步进阶:电源管理、PCB设计、保护电路等

学习单片机并进入嵌入式开发领域,编程语言是核心工具之一 。虽然单片机开发最常用的语言是 C 语言 (以及部分场景下的汇编、C++、Python、Rust等),但要真正做好嵌入式开发,仅仅会 C 是不够的,还需要掌握一系列相关语言与技能,并根据不同的开发层次和方向进行有针对性的学习。


一、嵌入式开发中常用的语言有哪些?

语言 应用场景 是否必须 说明
C 语言 单片机开发(如 STM32、51、AVR)、底层驱动、RTOS ✅ 必须掌握 嵌入式开发最核心、最广泛使用的语言
C++ 嵌入式 Linux、GUI开发、复杂应用、ROS、无人机等 ⭐ 推荐学习 在资源允许的平台上(如 Linux、ARM Cortex-A)使用较多
Python 上位机、脚本、边缘计算、物联网网关、树莓派 ⭐⭐ 推荐 适合快速开发、调试、数据处理、通讯协议等上层应用
Assembly(汇编) 极底层优化、启动代码、芯片移植 ❌ 一般不需要 了解即可,特殊场合(如 Bootloader、性能优化)可能用到
Rust 新兴嵌入式安全开发(如 RTIC、嵌入式 Rust 生态) ⭐ 未来趋势 安全性高,正在嵌入式领域逐渐流行,但生态仍在发展中
Lua / MicroPython 嵌入式脚本、轻量级控制(如 ESP32、OpenMV) ⭐ 可选 适合快速原型开发与教育用途
Bash / Shell / Makefile 嵌入式开发环境构建、自动化编译、固件烧录脚本 ⭐⭐ 推荐 工程师必备的脚本与构建工具能力

二、为什么学"相关语言"对嵌入式开发很重要?

嵌入式开发 ≠ 只会 C 语言!

一个完整的嵌入式项目通常包含多个层次:

层次 说明 常用语言
底层(MCU层) 单片机程序、驱动开发、寄存器操作、中断、硬件控制 C 语言(主要),部分汇编
中间层(通信/协议/算法) 传感器数据处理、通信协议(如 MQTT、Modbus)、算法实现 C / C++ / Python
上层(应用/UI/云连接) 图形界面、网络应用、手机App通信、云平台对接 C++ / Python / Java / JS / Lua
工具链/脚本 编译脚本、自动化测试、固件打包、烧录工具 Make / Bash / Python

👉 结论:只会 C 语言,你只能做"单片机底层控制";掌握更多语言,你才能做完整产品!


三、如何根据你的目标,有针对性地学习相关语言?

下面我按照不同嵌入式方向,为你梳理"除了 C 语言之外,还应该学什么语言 / 技能",帮助你成为更全面的嵌入式开发者 👇:


🎯 方向 1:传统单片机开发(如 STM32 / 51 / AVR)

✅ 必须:

  • C 语言(核心中的核心)

    • 掌握指针、结构体、位操作、中断、寄存器配置等
  • 汇编(可选)

    • 了解启动文件、Reset_Handler、上下文切换等(高级)

⭐ 推荐补充:

  • Makefile / CMake

    • 用于组织工程、自动化编译
  • Python

    • 用于写测试脚本、串口通信工具、数据处理脚本
  • Shell / Bash

    • 用于 Linux 下的开发环境管理、烧录脚本

🧠 建议:先把 C 语言与单片机外设(GPIO、定时器、UART、I2C、SPI)玩熟,再逐步拓展。


🎯 方向 2:嵌入式 Linux 开发(如树莓派、ARM Cortex-A、工业控制)

✅ 必须:

  • C 语言(驱动、内核模块)

  • C++(应用层开发,如 Qt GUI、多媒体)

  • Shell / Python

    • 用于系统管理、日志分析、网络通信、自动化部署

⭐ 推荐补充:

  • Python

    • 嵌入式数据分析、网络通信、REST API、上位机通信
  • Bash / Make / CMake

    • 构建系统、交叉编译脚本
  • Linux 系统编程

    • 多线程、Socket、文件IO、进程间通信(IPC)

🧠 嵌入式 Linux 项目常常是"C 底层驱动 + C++/Python 上层应用"的组合。


🎯 方向 3:物联网(IoT)开发(如 ESP32、NB-IoT、LoRa、Wi-Fi 模块)

✅ 必须:

  • C 语言(单片机端程序)

  • Python(上位机 / 云平台 / 数据处理)

⭐ 推荐补充:

  • MQTT / HTTP / JSON 相关库(Python 或 C)

    • 用于设备与云端通信
  • JavaScript / Node.js(可选)

    • 用于搭建 Web 仪表盘、手机 App 后端
  • MicroPython / Lua

    • 适合快速原型开发(如 ESP32 + MicroPython)

🧠 物联网 = 单片机(C) + 通信协议(MQTT/HTTP) + 云平台(Python/Node.js)


🎯 方向 4:车载 / 工业 / 安全关键型嵌入式系统

  • C 语言(主导)

  • C++(某些模块)

  • AUTOSAR(汽车行业专用架构与语言规范)

  • MATLAB / Simulink(建模与代码生成)

  • Python(算法验证 / 数据分析)

🧠 这类方向对代码的可靠性、实时性、安全性要求极高,语言只是工具,标准与规范更重要。


四、语言学习路径建议(结合嵌入式方向)

🧭 通用学习顺序(适合大多数学习者):

阶段 语言 / 技能 目标
1 C 语言(精通) 能熟练操作 GPIO、中断、定时器、通信协议,读写寄存器
2 C++(选学) 为后续 Linux / GUI / 复杂应用打基础
3 Python 用于脚本、通信、数据处理、云对接、自动化
4 Shell / Make / CMake 熟悉嵌入式开发中的构建与工具链
5 通信协议语言(如 JSON、MQTT、HTTP) 用于设备联网、云平台交互
6 其他(如 Rust / Lua / Matlab) 按需学习,如安全关键系统、快速原型等

五、学习资源推荐

📚 书籍

  • 《C Primer Plus》------C语言入门经典

  • 《C和指针》《C专家编程》------进阶 C 语言

  • 《嵌入式 C 编程》------单片机与底层开发

  • 《Python编程:从入门到实践》------Python 入门

  • 《Linux 设备驱动程序》------Linux 嵌入式开发必读

🎥 视频课程(B站/慕课网/极客时间)

  • 搜索关键词:"嵌入式 C 语言"、"STM32 C语言实战"、"Python 嵌入式应用"、"Linux 驱动开发"

  • 推荐 UP 主:硬核电子、稚晖君、技术胖、韦东山(嵌入式 Linux 大神)

🛠 工具 & 平台

  • Keil、IAR、STM32CubeIDE:C 语言单片机开发

  • VS Code / CLion / Eclipse:C/C++ 开发环境

  • PyCharm / Jupyter:Python 开发与数据分析

  • PlatformIO:跨平台嵌入式开发神器(支持 C/C++/Python)


六、总结:学单片机,如何通过语言助力嵌入式?

目的 推荐语言 作用
控制硬件、操作寄存器、写底层驱动 C 语言 嵌入式开发核心语言
做复杂应用、图形界面、多线程 C++ 适合资源丰富的嵌入式平台(如 Linux)
快速开发、通信、数据处理、云对接 Python 嵌入式上层应用、工具开发首选
脚本、自动化、工程构建 Shell / Make / Bash 开发效率工具
未来趋势 / 安全嵌入式 Rust 新兴语言,逐步应用于嵌入式
快速原型 / 教育用途 MicroPython / Lua 适合轻量级 MCU(如 ESP32)

✅ 你的下一步建议:

  1. 先把 C 语言与单片机结合,玩转常用外设(GPIO、定时器、串口、传感器)

  2. 学一点 Python,用来写测试脚本、数据处理、通信协议

  3. 如果想做更复杂的嵌入式 Linux 项目,再学 C++ 和 Linux 系统编程

  4. 根据你的具体方向(如 IoT、汽车、工业),再按需学习其他语言或工具


🎁 如果你告诉我:

  • 你目前主要用什么单片机?(如 STM32、51、ESP32)

  • 你想做哪方面的嵌入式项目?(如智能硬件、物联网、控制系统)

  • 你未来想往哪个方向发展?(如底层驱动、Linux开发、物联网、自动驾驶等)

我可以为你定制一份:

👉 "从 C 语言开始,逐步掌握嵌入式相关语言与技能"的详细学习路径与项目规划!

欢迎继续提问,我们一起打造你的嵌入式全栈能力! 💻⚙️🔧

相关推荐
挺6的还4 小时前
Boost搜索引擎
linux
kk”4 小时前
C++ stack 和 queue
开发语言·c++
天赐学c语言5 小时前
Linux进程信号(上)
linux·可重入函数·进程信号
Word码5 小时前
[排序算法]希尔排序
c语言·数据结构·算法·排序算法
ajassi20005 小时前
开源 Linux 服务器与中间件(四)服务器--Tomcat
linux·服务器·开源
小叮当⇔5 小时前
IOT项目——STM32
stm32·嵌入式硬件·物联网
给大佬递杯卡布奇诺5 小时前
FFmpeg 基本API avcodec_send_packet函数内部调用流程分析
c++·ffmpeg·音视频
QT 小鲜肉5 小时前
【数据结构与算法基础】05. 栈详解(C++ 实战)
开发语言·数据结构·c++·笔记·学习·算法·学习方法
lingran__5 小时前
算法沉淀第七天(AtCoder Beginner Contest 428 和 小训练赛)
c++·算法