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 反转链表②【虚拟头结点】
力扣 2 两数相加【局部对象】【数值计算区间】【函数返回值是复合体(链表节点、树节点)】

4、树

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

5、栈和队列

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

6 、哈希

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

算法

1、递归和循环

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

2、查找和排序

二分查找

【算法套路】-【二分法】【左右端点的更新】
剑指 11 旋转数组的最小数字
力扣 74 搜索二维矩阵【二分法】【边界确定】

快速排序

快速排序【算法解析】【C++代码实例】

3、回溯法

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

4、贪心

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

5、动态规划

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

背包问题

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

6、位运算

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


二、LeetCode 热题 HOT 100

【Hot100-3】 无重复字符的最长子串 【双指针法】
【Hot100-4】 寻找两个正序数组的中位数
力扣Hot100-5最长回文子串【动规五步法】
力扣Hot100-11盛最多水的容器【双指针法】
力扣Hot100-19删除链表倒数第N个节点【双指针】【递归】
力扣Hot100-22 括号生成【递归三步法】


三、编程语言Cpp

1、 动态内存

动态内存基础知识

2、 指针

指针(一)指针基础知识

3、 关键字

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

4、 模板

模板基础知识

5、 异常

异常【throw】【try】【catch】

6、 多态

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

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

7、 STL

1 STL部件【容器、分配器、算法、迭代器、适配器、仿函数】容器简介【序列容器、关联容器、无序容器】
2 STL迭代器介绍【前向迭代器、双向迭代器、随机访问迭代器】【迭代器遍历容器】
3 STL序列式容器简介【array、vector、deque、list、forward_list】【容器函数合集】
4 STL【array介绍】【访问array单个/多个元素】【array成员函数】
5 STL【vector介绍】【创建/添加/插入/删除】【迭代器】【vector成员函数】【访问vector】【释放vector内存】
6 STL【deque介绍】【deque创建/成员函数/迭代器/底层实现原理】【访问deque内元素】【deque元素添加/删除】
7 STL【list介绍】【list创建/迭代器/成员函数/底层实现】【访问/添加/删除list元素】【forward_list】
8 STL【map介绍】【map创建/成员函数/迭代器】【map键值对插入】【multimap介绍】
9 STL【set介绍】【set创建】【添加/删除set元素】【multiset】
10 STL关联式容器自定义排序规则【函数对象】【常用排序规则】
11 STL【无序容器介绍】
12 STL【unordered_map介绍】【unordered_map获取/添加/删除元素 成员函数】【unordered_multimap】【unordered_set】
13 STL【容器适配器简介】【适配器分配】


四、操作系统

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

五、笔试Tips

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值