
数据结构与算法
AI小笔记
人一能之,己百之;人十能之,己千之。
展开
-
动态规划
从斐波拉契数列看动态规划 分别使用递归和非递归的方法来解决。 #子问题重复计算 def fibnacci(n): if n == 1 or n == 2: return 1 else: return fibnacci(n - 1) + fibnacci(n - 2) #动态规划(DP)的思想 = 递推式 + 重复子问题 def fibnacci_no_recurision(n): f = [0, 1, 1] if n > 2:原创 2020-09-28 14:37:38 · 160 阅读 · 0 评论 -
贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出当前看来最好的选择。 也就是说,不从整体最优解上加以考虑,他所做出的是在某种意思上的最优解。 贪心算法并不会保证得到最优解,但是在某些问题上贪心算法的解就是最优解。要会判断一个问题是否能用贪心算法来计算。 找零问题:假设商店老板需要找零n元钱,钱币面额有:100元、50元、20元、1元,如何找使得所需钱币的数量最少? t = [100, 50, 20, 5, 1] def change(t, n): m = [0 for _ in range(原创 2020-09-27 18:08:53 · 232 阅读 · 0 评论 -
二叉搜索树的查询、插入、删除
# -*- coding:utf-8 -*- # @Time : 2020/9/23 15:56 # @Author: JulyLi # @File : bst.py class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None self.rchild = None self.parent = None """ 删除操作: 1.如果要原创 2020-09-23 18:56:01 · 189 阅读 · 0 评论