1 爬楼梯(Fibonacci)

#有一楼梯共M级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
def fun(m):
c = [0]*m
c[0] = 1
c[1] = 2
for i in range(2,m):
c[i] = c[i-1]+c[i-2]
return c[m-1]
print(fun(3))

2最长公共子序列长度

def lcs(x,y,m,n):
c = [[0]*(n+1)]*(m+1)
print(len(c),len(c[0]))
for i in range(m):
for j in range(n):
if x[i]==y[j]:
c[i+1][j+1]=c[i][j]+1
else:
c[i+1][j+1]=max(c[i+1][j],c[i][j+1])
return c[m][n]
x = [1,3,2,5,6]
y = [6,3,2,4,5,7,6]
m,n = 5,7
print(lcs(x,y,m,n))

  变形有最短编辑距离

3 最长上升子序列长度

def lis(x,m):
if m == 0:
return 0
c = [1]*m #c[i]为以i下标为结尾的最长上升子序列长度,如果m不为0,那么结果至少为1
for i in range(m):
for j in range(i):
if x[i]>x[j]:
c[i] = max(c[j]+1,c[i])
return max(c)
x = [2,1,5,7,10,4]
m = 6
print(lis(x,m))

4 硬币找零之最少硬币方案

def coinfun(coin,aim):
max_value = aim+1
c = [0]+[max_value]*aim
#两行写法,很python
# for i in range(1,aim+1):
# c[i] = min([c[i-j] if i-j>=0 else max_value for j in coin ])+1
#常规写法
for i in range(1,aim+1):
for j in coin:
if i-j>=0:
c[i] = min(c[i],c[i-j]+1)
if c[aim] == aim+1:
return -1 #没法找
return c[aim]
coin = [5,2,3]
aim = 20
print(coinfun(coin,aim))

5 硬币找零之最大找零种数

def coinfun(coin,aim):
c = [0]*(aim+1)
c[0]=1
for j in coin:
for i in range(1,aim+1):
if i-j>=0:
c[i] += c[i-j]
if c[aim] == 0:
return -1 #没法找
return c[aim]
coin = [5,2,3]
aim = 20
print(coinfun(coin,aim))

6 最大连续子序列和

#最大连续子序列和
def maxsub(A):
dp = [0] *len(A) #以i下表为结尾的最大连续子序列和(大概这个意思,不太准确明白就行)
dp[0] = A[0]
for i,item in enumerate(A):
dp[i] = item+dp[i-1] if dp[i-1]>0 else item
return max(dp)
A = [3,-1,5,-7,4]
print(maxsub(A))

7 不相邻元素最大累加和

#最大不相邻累加和
def sum1(arr):
c = [0]*len(arr)
c[0] = arr[0]
c[1] = max(arr[0],arr[1])
for i in range(2,len(arr)):
c[i] = max(c[i-1],c[i-2]+arr[i])
return c[-1]
arr = [3, 2, 1, 9, 4, 2]
print(sum1(arr))

动态规划刷题集python代码的更多相关文章

  1. lintcode 刷题 by python 总结(1)

    博主之前在学习 python 的数据结构与算法的基础知识,用的是<problem-solving-with-algorithms-and-data-structure-using-python& ...

  2. noip2019——动态规划刷题历程

    加粗的是值得总结的 从洛谷的普及题开始刷题: 背包式dp(有些技巧的) 1.p2639[USACO09OCT]Bessie的体重问题 -p1049取模意义下01背包 技巧:重量=价值 2.金明的预算问 ...

  3. 山东理工大学SDUT - ACM OJ 题: Python代码 及分析

    Python基础语法学习完成,先刷基础题100道巩固 ,附 题目.代码.知识分析 题目:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index ...

  4. lintcode 刷题 by python 部分链表题总结(2)

    本篇博客对最近做的链表的算法题做个简单的小结,主要描述题目和提供解题思路,具体代码见我的 github:https://github.com/MUSK1881/lintcode-by-python 3 ...

  5. 牛客网Java刷题知识点之代码块(局部代码快、构造代码块、静态代码块)

    不多说,直接上干货! 代码块包括局部代码快.构造代码块.静态代码块. 代码块,就是一段独立的代码空间. 1.局部代码快 对局部变量的生命周期进行控制. 2.构造代码块 对所有对象进行初始化. 3.静态 ...

  6. 酸菜鱼的 DP动态规划 刷题记录

    BZOJ1026: [SCOI2009]windy数 数位dp.很多小细节... 代码: #include <bits/stdc++.h> using namespace std; typ ...

  7. python部落刷题宝学到的内置函数

    最近加入了python部落,感觉里面的刷题宝很有意思,玩了一下,知道了许多以前并不清楚的内置函数,然后感觉到快要记不住了,所以开始陈列一下 1.divmod(a,b):取a除以b的商和余数,功效等价于 ...

  8. 教你用python写:HDU刷题神器

    声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定 ...

  9. 刷题翻车:python 布尔运算操作符的优先级

    前两天在 xue.cn 体验答题挑战,我有道题做错了,却不明白错在哪里.题目大概如下,代码运行后将打印什么? if True or False and False: print('1') else: ...

随机推荐

  1. python第三十二课——队列

    队列:满足特点 --> 先进先出,类似于我们生活中的买票.安检 [注意] 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象; ...

  2. scrapy的request的meta参数是什么意思?

    作者:乌尔班链接:https://www.zhihu.com/question/54773510/answer/146971644来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. shiro实战系列(九)之Web

    一.Configuration(配置) 将 Shiro 集成到任何 Web 应用程序的最简单的方法是在 web.xml 中配置 ContextListener 和 Filter,理解如何读取 Shir ...

  4. Redis 4.x 安装及 发布/订阅实践和数据持久化设置

    1.或者源码安装包 #wget http://download.redis.io/releases/redis-4.0.6.tar.gz 2.解压源码包 #tar -zxf redis-4.0.6.t ...

  5. WorldWind源码剖析系列:可渲染对象类RenderableObject

    RenderableObject是WorldWind中所有需要渲染的对象的父类,继承了接口IRenderable和Icomparable.其派生类体系如下所示.RenderableObject的成员如 ...

  6. Convolutional Networks for Images,Speech,and Time-series

    Convolutional Networks for Images,Speech,and Time-series Yann LeCun  Yoshua Bengio 1995年的 1引言 多层BP网络 ...

  7. day57

    JQ初级 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 jQuery是一个简洁高效的且功能丰富的JavaScript工具库 2.jQue ...

  8. MVC在母版页设置子页面的css和js引用布局

    1.在母版页中指定子页面css和js布局 @RenderSection("Styles", false) @RenderSection("Scripts", f ...

  9. 何谓BLDC电机?BLDC电机是如何旋转的?

    何谓BLDC电机?BLDC电机是如何旋转的?

  10. OpenShift-OKD3.10基础环境部署

    单master + 双node 1.主机角色划分 #采用双网段部署 0 网段是opesnshift内部通信IP,1 网段是连接外网通信地址 #master master.example.com 192 ...