12.27_黑马数据结构与算法笔记Java

目录

254 零钱兑换II 递归 递归分析

255 零钱兑换II 递归 所有组合

256 零钱兑换II 递归 顺序优化

257 零钱兑换II 递归 

258 零钱兑换 贪心 1

259 零钱兑换 贪心 2

260 Huffman Tree

261 Huffman Tree 分析

262 Huffman Tree 统计频次

263 Huffman Tree 构建树

264 Huffman Tree 记录编码

265 Huffman Tree 编解码


254 零钱兑换II 递归 递归分析

12.27_黑马数据结构与算法笔记Java_第1张图片

255 零钱兑换II 递归 所有组合

12.27_黑马数据结构与算法笔记Java_第2张图片

12.27_黑马数据结构与算法笔记Java_第3张图片

12.27_黑马数据结构与算法笔记Java_第4张图片

可以进行优化,将重复代码抽取出来

12.27_黑马数据结构与算法笔记Java_第5张图片

256 零钱兑换II 递归 顺序优化

倘若代码量大,那重复调用的代码就会很多,因此,需要进行优化。

12.27_黑马数据结构与算法笔记Java_第6张图片

我们发现,由大到小的递归次数少 

12.27_黑马数据结构与算法笔记Java_第7张图片

 分析过程:

12.27_黑马数据结构与算法笔记Java_第8张图片

257 零钱兑换II 递归 

12.27_黑马数据结构与算法笔记Java_第9张图片

12.27_黑马数据结构与算法笔记Java_第10张图片

自增自减是因为,方便下一次的递归调用。 

12.27_黑马数据结构与算法笔记Java_第11张图片

12.27_黑马数据结构与算法笔记Java_第12张图片

这属于暴力递归。 

258 零钱兑换 贪心 1

12.27_黑马数据结构与算法笔记Java_第13张图片

12.27_黑马数据结构与算法笔记Java_第14张图片

259 零钱兑换 贪心 2

12.27_黑马数据结构与算法笔记Java_第15张图片

260 Huffman Tree

12.27_黑马数据结构与算法笔记Java_第16张图片

12.27_黑马数据结构与算法笔记Java_第17张图片

12.27_黑马数据结构与算法笔记Java_第18张图片

12.27_黑马数据结构与算法笔记Java_第19张图片

12.27_黑马数据结构与算法笔记Java_第20张图片

12.27_黑马数据结构与算法笔记Java_第21张图片

12.27_黑马数据结构与算法笔记Java_第22张图片

 这最好的编码方式就是HuffmanTree

261 Huffman Tree 分析

12.27_黑马数据结构与算法笔记Java_第23张图片

12.27_黑马数据结构与算法笔记Java_第24张图片

12.27_黑马数据结构与算法笔记Java_第25张图片

262 Huffman Tree 统计频次

有左孩子就一定会有右孩子,因此判断左孩子是否为null即可

12.27_黑马数据结构与算法笔记Java_第26张图片

12.27_黑马数据结构与算法笔记Java_第27张图片

12.27_黑马数据结构与算法笔记Java_第28张图片

12.27_黑马数据结构与算法笔记Java_第29张图片

12.27_黑马数据结构与算法笔记Java_第30张图片

 优化:如果map中缺失,则创建一个新的,再返回node,如果map中不缺失,则不创建新的,直接返回node

12.27_黑马数据结构与算法笔记Java_第31张图片

263 Huffman Tree 构建树

12.27_黑马数据结构与算法笔记Java_第32张图片

264 Huffman Tree 记录编码

12.27_黑马数据结构与算法笔记Java_第33张图片

12.27_黑马数据结构与算法笔记Java_第34张图片

12.27_黑马数据结构与算法笔记Java_第35张图片

功能四

12.27_黑马数据结构与算法笔记Java_第36张图片

265 Huffman Tree 编解码

12.27_黑马数据结构与算法笔记Java_第37张图片

解码思路: 

12.27_黑马数据结构与算法笔记Java_第38张图片

 

12.27_黑马数据结构与算法笔记Java_第39张图片

你可能感兴趣的:(数据结构与算法,笔记,算法,数据结构,java,贪心算法,深度优先,霍夫曼树)