C++刷题学习笔记目录


C++刷题与学习笔记

为找工作做准备,记录刷题心得与代码


一、数据结构

1、数组

力扣283 移动零
剑指 03 题目一 数组中重复的数字
剑指 03 题目二 不修改数组找出重复的数字
剑指 04 二维数组中的查找
剑指 21 调整数组顺序使奇数位于偶数前面
剑指 29 顺时针打印矩阵

2、字符串

字符串匹配KMP算法
剑指 05 替换空格
【大数问题】剑指 17 打印从1到最大的n位数
剑指 20 表示数值的字符串

3、链表

剑指 06 从尾到头打印链表
剑指 18 删除链表的节点
嵌套指针-剑指 18(2) 删除链表中的重复节点
剑指 22 链表中倒数第k个节点
剑指 23 链表中环的入口节点
剑指 24 反转链表
剑指 25 合并两个排序的列表
力扣 92 反转链表②【虚拟头结点】

4、树

剑指 07 重建二叉树
剑指 08 二叉树的下一个节点
剑指 26 树的子结构
剑指 27 二叉树的镜像
剑指 28 对称的二叉树
剑指 32 从上到下打印二叉树【宽度/广度优先遍历】【BFS】
剑指 32_2 分行从上到下打印二叉树【广度优先遍历】【层序遍历】
剑指 32_3 之字形打印二叉树
剑指 33 二叉搜索树的后序遍历序列【二叉搜索树 BST】【后序遍历】
剑指 36 二叉搜索树与双向链表【二叉搜索树】【中序遍历】【双向链表】
力扣 102 二叉树的层序遍历【广度优先遍历】
力扣 101 对称二叉树【递归三步法】

5、栈和队列

剑指 09 用两个栈实现队列
剑指 30 包含min函数的栈
剑指 31 栈的压入、弹出序列【贪心算法】

6 、哈希

剑指 35 复杂链表的复制【哈希法】


二、算法

1、递归和循环

【算法套路】-【递归篇】【递归三要素】
剑指 10 斐波那契数列
力扣 226 翻转二叉树 【递归三步法】

2、查找和排序

(2-1) 二分查找

剑指 11 旋转数组的最小数字

3、回溯法

【算法套路】-【回溯篇】【回溯三步法】
剑指 12 矩阵中的路径
剑指 13 机器人的运动范围
剑指 34 二叉树中和为某一值的路径【回溯】【递归】
力扣 77 组合【回溯经典问题】【三步法】
力扣 216 组合总和3 【回溯三步法】
力扣 17 电话号码的字母组合
力扣 39 组合总和

4、贪心

力扣 455 分发饼干【贪心】【局部最优】【全局最优】
力扣 376 摆动序列【贪心】
力扣 53 最大子序和【贪心】【暴力】

5、动态规划

动态规划(一)基本概念
动态规划(二)解题步骤
剑指 14 剪绳子【动态规划】
力扣 509 斐波那契数【动态规划】
力扣 746 使用最小花费爬楼梯
力扣 62 不同路径【动态规划五步法】
力扣 63 不同路径②【动规五步法】【dp数组初始化】

(5-1)背包问题

背包问题【01背包扫盲】【动规五步法】
背包问题-01背包之滚动数组【动规五步法】

6、位运算

位运算(一)剑指 15 二进制中1的个数
位运算(二)剑指 16 数值的整数次方


三、编程语言Cpp

1、 动态内存

动态内存基础知识

2、 指针

指针(一)指针基础知识

3、 关键字

Cpp关键字破解(一)【const】篇
Cpp关键字破解(二)【static】篇
Cpp关键字破解(三)【volatile】篇
Cpp关键字破解(四)【explicit】篇

4、 模板

模板基础知识

5、 异常

异常【throw】【try】【catch】

6、 多态

C++ 多态知识解密【静态联编】【动态联编】【函数重载】【函数重写】【函数重定义】【虚函数表与vptr指针】【纯虚函数】【抽象类】【接口】

虚函数的实现原理【虚函数作用】【动态联编】【虚函数表/指针 创建时机、作用、存放位置】【vtbl、vptr】


四、操作系统

【操作系统系列(一)】进程和线程

五、笔试Tips

C++按行读入数组【数组元素均一行/多行输入】
C/C++输入输出IO问题【保存小数位数】【空格回车截断】

猜你喜欢

转载自blog.csdn.net/weixin_44484715/article/details/109003238