算法笔记练习 题解合集

目录

章节 小节
3.1 简单模拟,3.3 图形输出,
3.4 日期处理,3.5 进制转换,3.6 字符串处理
4.1 排序,4.2 散列,4.3 递归,4.4 贪心,
4.5 二分,4.6 two pointers,4.7 其他高效技巧与算法
5.1 简单数学,5.2 最大公约数与最小公倍数,5.3 分数的四则运算,5.4 素数,
5.5 质因子分解,5.6 大整数运算,5.7 扩展欧几里得算法,5.8 组合数
6.1 vector,6.2 set,6.3 string,6.4 map,6.5 queue,
6.6 priority_queue,6.7 stack,6.8 pair,6.9 algorithm
7.1 栈的应用,7.2 队列的应用,7.3 链表处理
8.1 深度优先搜索(DFS),8.2 广度优先搜索(BFS)
9.1 树与二叉树,9.2 二叉树的遍历,9.3 树的遍历,9.4 二叉查找树(BST),
9.5 平衡二叉树(AVL树),9.6 并查集,9.7 堆,9.8 哈夫曼树
例题 例题

第 3 章 入门篇(1)——入门模拟

3.1 简单模拟

  • 问题 A: 剩下的树
  • 问题 B: A+B
  • 问题 C: 特殊乘法
  • 问题 D: 比较奇偶数个数
  • 问题 E: Shortest Distance (20)
  • 问题 F: A+B和C (15)
  • 问题 G: 数字分类 (20)
  • 问题 H: 部分A+B (15)
  • 问题 I: 锤子剪刀布 (20)

3.3 图形输出

  • 问题 A: 输出梯形
  • 问题 B: Hello World for U
  • 问题 C: 等腰梯形
  • 问题 D: 沙漏图形 tri2str [1*+]

3.4 日期处理

  • 问题 A: 日期差值
  • 问题 B: Day of Week
  • 问题 C: 打印日期
  • 问题 D: 日期类
  • 问题 E: 日期累加

3.5 进制转换

  • 问题 A: 又一版 A+B
  • 问题 B: 数制转换
  • 问题 C: 进制转换
  • 问题 D: 八进制

3.6 字符串处理

  • 问题 A: 字符串连接
  • 问题 B: 首字母大写
  • 问题 C: 字符串的查找删除
  • 问题 D: 单词替换
  • 问题 E: 字符串去特定字符
  • 问题 F: 数组逆置
  • 问题 G: 比较字符串
  • 问题 H: 编排字符串
  • 问题 I: 【字符串】回文串

第 4 章 入门篇(2)——算法初步

4.1 排序

  • 问题 A: 排序
  • 问题 B: 特殊排序
  • 问题 C: EXCEL排序
  • 问题 D: 字符串内排序
  • 问题 E: Problem B
  • 问题 F: 小白鼠排队
  • 问题 G: 中位数
  • 问题 H: 整数奇偶排序
  • 问题 I: 排名

4.2 散列

  • 问题 A: 谁是你的潜在朋友
  • 问题 B: 分组统计
  • 问题 C: 【PAT A1041】Be Unique
  • 问题 D: 【PAT A1050】String Subtraction

4.3 递归

  • 问题 A: 吃糖果
  • 问题 B: 数列
  • 问题 C: 神奇的口袋
  • 问题 D: 八皇后

4.4 贪心

  • 问题 A: 看电视
  • 问题 B: 出租车费
  • 问题 C: To Fill or Not to Fill
  • 问题 D: Repair the Wall
  • 问题 E: FatMouse’s Trade
  • 问题 F: 迷瘴
  • 问题 G: 找零钱

4.5 二分

  • 问题 A: 找x
  • 问题 B: 打印极值点下标
  • 问题 C: 查找

4.6 two pointers

  • 问题 A: 二路归并排序(mergesort)递归法 [2*+]
  • 问题 B: 基础排序III:归并排序
  • 问题 C: 快速排序 qsort [2*]

4.7 其他高效技巧与算法

  • 问题 A: 求第k大数

第 5 章 入门篇(3)——数学问题

5.1 简单数学

  • 问题 A: 守形数
  • 问题 B: 反序数
  • 问题 C: 百鸡问题
  • 问题 D: abc
  • 问题 E: 众数
  • 问题 F: 计算两个矩阵的乘积
  • 问题 G: 加法等式
  • 问题 H: 整数和
  • 问题 I: 反序相等
  • 问题 J: 多项式的值
  • 问题 K: 迭代求立方根
  • 问题 L: 与7无关的数
  • 问题 M: 鸡兔同笼

5.2 最大公约数与最小公倍数

  • 问题 A: Least Common Multiple

5.3 分数的四则运算

  • 问题 A: 分数矩阵

5.4 素数

  • 问题 A: 素数
  • 问题 B: Prime Number
  • 问题 C: Goldbach’s Conjecture

5.5 质因子分解

  • 问题 A: 完数
  • 问题 B: 完数
  • 问题 C: 质因数的个数
  • 问题 D: 约数的个数
  • 问题 E: 完数与盈数

5.6 大整数运算

  • 问题 A: a+b
  • 问题 B: N的阶乘
  • 问题 C: 浮点数加法
  • 问题 D: 进制转换
  • 问题 E: 大整数排序
  • 问题 F: 10进制 VS 2进制

5.7 扩展欧几里得算法

  • 问题 A: 同余方程-NOIP2012TGD2T1

5.8 组合数

  • 问题 A: 计算组合数
  • 问题 B: 求组合数

第 6 章 C++标准模版库(STL)介绍

6.1 vector 的常见用法详解

  • 问题 A: 【PAT A1039】Course List for Student
  • 问题 B: 【PAT A1047】Student List for Course

6.2 set 的常见用法详解

  • 问题 A: 【PAT A1063】Set Similarity

6.3 string 的常见用法详解

  • 问题 A: 字符串处理

6.4 map 的常见用法详解

  • 问题 A: 【PAT A1071】Speech Patterns

6.5 queue 的常见用法详解

  • 问题 A: C语言-数字交换

6.6 prioriry_queue 的常见用法详解

  • 问题 A: 任务调度

6.7 stack 的常见用法详解

  • 问题 A: 简单计算器
  • 问题 B: Problem E

6.8 pair 的常见用法详解

  • 问题 A: 重心在哪里

6.9 algorithm 头文件下的常用函数

  • 问题 A: 求最大最小数
  • 问题 B: 全排列
  • 问题 C: 数组逆置

第 7 章 提高篇(1)——数据结构专题(1)

7.1 栈的应用

  • 问题 A: 简单计算器
  • 问题 B: Problem E

7.2 队列的应用

  • 问题 A: C语言-数字交换

7.3 链表处理

  • 问题 A: 算法2-8~2-11:链表的基本操作
  • 问题 B: C语言-链表排序
  • 问题 C: 最快合并链表(线性表)
  • 问题 D: 链表查找(线性表)
  • 问题 E: 算法2-24 单链表反转
  • 问题 F: 算法2-25 有序单链表删除重复元素

第 8 章 提高篇(2)——搜索专题

8.1 深度优先搜索(DFS)

  • 问题 A: 【递归入门】全排列
  • 问题 B: 【递归入门】组合的输出
  • 问题 C: 【递归入门】组合+判断素数
  • 问题 D: 【递归入门】n皇后 问题(原始的8皇后问题)
  • 问题 E: 【递归入门】出栈序列统计
  • 问题 F: 【递归入门】走迷宫

8.2 广度优先搜索(BFS)

  • 问题 A: Jugs
  • 问题 B: DFS or BFS?
  • 问题 C: 【宽搜入门】8数码难题
  • 问题 D: 【宽搜入门】魔板
  • 问题 E: 【宽搜入门】巧妙取量

第 9 章 提高篇(3)——数据结构专题(2)

9.1 树与二叉树

本节无练习

9.2 二叉树的遍历

  • 问题 A: 复原二叉树
  • 问题 B: 二叉树
  • 问题 C: 二叉树遍历(和问题 A 完全相同)
  • 问题 D: 二叉树遍历

9.3 树的遍历

  • 问题 A: 树查找
  • 问题 B: 树的高度

9.4 二叉查找树(BST)

  • 问题 A: 二叉排序树
  • 问题 B: 二叉搜索树

9.5 平衡二叉树(AVL树)

  • 问题 A: 算法9-9~9-12:平衡二叉树的基本操作

9.6 并查集

  • 问题 A: 通信系统
  • 问题 B: 畅通工程
  • 问题 C: How Many Tables
  • 问题 D: More is better

9.7 堆

  • 问题 A: 算法10-10,10-11:堆排序
  • 问题 B: 序列合并 - 超级详细的思路讲解
  • 问题 C: 合并果子(堆)

9.8 哈夫曼树

  • 问题 A: 算法6-12:自底向上的赫夫曼编码
  • 问题 B: 算法6-13:自顶向下的赫夫曼编码
  • 问题 C: 哈夫曼树 - 超级详细的思路讲解
  • 问题 D: Haffman编码
  • 问题 E: 合并果子-NOIP2004TGT2

例题

书上的一部分例题,个人认为有练习价值,于是自己不看答案直接写或者看一下思路实现代码,既然写了也一并附在下面。

  • P95 【codeup5901】回文串
  • P96 【PAT B1009】说反话
  • P103 【PAT A1025】PAT Ranking
  • P167 【PAT A1059】Prime Factors
  • P209 【PAT A1060】Are They Equal
  • P261 【PAT A1032】Sharing

你可能感兴趣的:(算法笔记)