天天看点

Python数据结构与算法笔记(3)动态规划

problem-solving-with-algorithms-and-data-structure-using-python 中文版

4 递归

递归是一种解决问题的方法,将问题分解为更小的子问题,直到得到一个足够小的问题可以被很简单地解决,通常递归设计函数调用自身。递归允许我们编写优雅的解决方案,解决可能很难编程的问题

递归算法必须服从三个重要的定律:

  1. 递归算法必须具有基本情况
  2. 递归算法必须改变其状态并向基本情况靠近
  3. 递归算法必须以递归的方式调用自身

整数转换为任意进制字符串

1. 将原始数字减少为一系列单个位数字
2. 使用查找将单个位数字转换为字符串
3. 将单个位字符串链接在一起形成最终结果           

复制

动态规划

计算机科学中的许多程序是为了优化一些值而编写的,例如,找到两个点之间的最短路径,找到最合适的一组点的线,或找到某些标准的最小对象集。动态规划就是这些类型的优化问题的一个策略。