Python数据结构与算法笔记(3)

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

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

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

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

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

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

动态规划

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MyBlog

Effective.Java 读书笔记(8)关于equals方法

重写equals看上去十分简单对吧,但是我觉得很多时候重写equals可能会招致一些问题,这些问题有时可能会特别严重,当然了不重写不就完事了吗?但是这只适用于那...

924
来自专栏非著名程序员

鸡蛋问题来了,是先有Class还是先有Object?

周末比较无聊,在浏览论坛的时候,偶然看到一个程序猿提问的问题,他时这样提问的:突然想到一个很菜的问题, 倒底先有Object还是先有Class?所有类都是Obj...

2076
来自专栏zhisheng

运算优先级、结合性、求值顺序、副作用和顺序点

标题中这几个概念,是很多C/C++程序员在表达式上容易出问题或不清楚的地方,虽然这些概念在很多语言都有体现,但C里面特别明显,所以就以C语言为例子总结下 运算...

4857
来自专栏贺贺的前端工程师之路

《JavaScript语言精粹》学习笔记

在JavaScript中,/ *可能出现在正则表达式字面量里,所以块注释对于被注释的代码块来说是<u>不安全的</u>。

782
来自专栏菜鸟前端工程师

JavaScript学习笔记021-常用排序算法

682
来自专栏陈树义

如何快速学好Shell脚本?

1073
来自专栏程序员互动联盟

【专业知识】 Webkit智能指针用法

历史: 在WebKit中,许多对象采用了引用计数。这种模式是通过类的ref,deref成员函数来递增和递减对象的引用记数。调用一次ref必须调用一次der...

35915
来自专栏AI2ML人工智能to机器学习

Python的map函数理解四式

这个map函数是python的内嵌的函数, 那么如何手写一个自己的map函数, 实现内嵌map函数一模一样的功能呢?

1162
来自专栏PHP在线

php面试题(一)

1 <?php echo -10%3; ?> 答案:-1。 考查:优先级。 因为-的优先级比%求余的优先级低,也就是-(10%3)。 2 print (int...

3757
来自专栏程序员互动联盟

【编程基础】C++ Primer快速入门五:实用的模板库

除上篇博客介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库。包括 string 和 vector,它们分别定义了字符串和矢量(集合)。s...

2965

扫码关注云+社区

领取腾讯云代金券