算法与数据结构
基础算法与数据结构
飘逸py
这个作者很懒,什么都没留下…
展开
-
Python换钱的最少货币数
题目:给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求组成aim的最少货币数。例:arr = [5, 2, 3],aim = 20,arr中组成20的最少张数为4,返回4。arr = [5, 2, 3],aim = 0,不用任何货币就可以组成0,返回0。arr = [3, 5],aim = 2,钱找不开返回-1。思路:假设arr = [5, 2, 3],aim=10。建立一.原创 2020-10-03 23:43:07 · 1038 阅读 · 0 评论 -
Python矩阵的最小路径和
题目:给定一个矩阵m, 从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。思路:这是经典的动态规划题。矩阵m的大小为N行M列。假设m如下:1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 首先生成一个大小和m一样的矩阵dp,dp中的每个元素用于记录从(0,0)位置到达该位置的最小路径和。对于dp[i][j].原创 2020-10-02 22:40:23 · 2056 阅读 · 1 评论 -
Python数字金字塔
数字金字塔原创 2020-09-14 23:48:38 · 3941 阅读 · 0 评论 -
Python数字拆分
数字拆分例如:输入:3输出[1, 1, 1][1, 2][2, 1][3]递归的层数不定,使用python实现,直接上代码。class num_div(object): def __init__(self): self.datas = [] self.total = 0 def search(self, rest): if rest <= 0: print(self.datas)原创 2020-08-16 21:00:57 · 4900 阅读 · 0 评论 -
Python回溯法实现全排列
下面解法的特点:递归的层数固定,解空间是由上一个传递过来的。这里使用的是python,直接上代码。class AllRange(object): def __init__(self, data_list): self.data_list = data_list self.arranges = [] # 用于存放过程中的各种结果 self.total = 0 def search(self, depth, datas): i原创 2020-08-16 19:08:37 · 825 阅读 · 0 评论