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. java util.Date 转换为sql.Date

    public static java.sql.Timestamp StrTransSqlDate(String date) { SimpleDateFormat simpleDateFormat = ...

  2. leetcode15—3Sum

    Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find ...

  3. JAVA框架 Spring 事务

    一.我们之前在hibernate的时候,需要直接写事务,需要绑定当前线程保证获取同一个连接,虽然hibernate的帮我们封装绑定当前现成的操作,但是需要我们手动的去开启和关闭事务. 而spring帮 ...

  4. JAVA框架 Spring AOP注解

    一.准备工作: 1)导入jar包: 4个jar包. 2)约束:(spring需要所有的约束)有IOC约束和AOP 还有事务(tx)以及注解注入的约束(context). <?xml versio ...

  5. mysql,int(5)、int(10)啥区别联系

    实际没啥区别..这个5和10并不是最大5位,最大10位的意思. 好比选择了int(5),并且当你选择了0填充的话.你的数据假设存了123,那么你的显示会是00123,(有些操作mysql的工具看不出来 ...

  6. 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结

    1. 前言 bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的.本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以 ...

  7. Java IO详解(三)------字节输入输出流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  8. ADO.NET TransactionScope使用说明(转载)

    TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物.使用之前必须添 ...

  9. 03-Python执行方式和Pycharm设置

    https://www.python.org/ 单词列表 * error 错误 * name 名字 * defined 已经定义 * syntax 语法 * invalid 无效 * Indentat ...

  10. 20155207 EXP7 EXP8 EXP9 实验补交

    20155207 EXP7 EXP8 EXP9 实验补交 20155207 EXP7 网络欺诈技术防范 20155207 EXP8 Web基础 20155207 <网络对抗> Exp9 W ...