https://leetcode-cn.com/problems/coin-lcci/

硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)

示例1:

输入: n = 5
输出:2
解释: 有两种方式可以凑成总金额:
5=5
5=1+1+1+1+1
示例2:

输入: n = 10
输出:4
解释: 有四种方式可以凑成总金额:
10=10
10=5+5
10=5+1+1+1+1+1
10=1+1+1+1+1+1+1+1+1+1

//完全背包问题
//f[i,v] 前i个硬币组成v的方案数 用了第i个硬币 f[i-1,v-0*coins[i]]+f[i-1,v-coins[i]]+...f[i-1,v-k*conis[i]]
func waysToChange(n int) int {
var coins = []int{1,5,10,25}
m := len(coins)
f := make([][]int,m+1)
for i:=0;i<=m;i++{
f[i] = make([]int,n+1)
}
for i:=1;i<=n;i++{
f[0][i] = 0
}
for j:=0;j<=m;j++{
f[j][0] = 1
}
f[0][0] = 1
for i:=1;i<=m;i++{
for j:=1;j<=n;j++{
K := j/coins[i-1]
for k:=0;k<=K;k++{
f[i][j] += f[i-1][j-k*coins[i-1]]
}
}
}
return f[m][n]%1000000007
}

  

//优化 f[i][v] = f[i-1,v-0*coins[i]]+f[i-1,v-coins[i]]+...f[i-1,v-k*conis[i]]
//  利用v-coins[i] 替换 v
//那么 f[i][v-coins[i]] = f[i-1,v-coins[i]]+...f[i-1,v-k*conis[i]]    最后一项无意义 f[i-1][v-(k+1)*coins[i]] 
//那么 f[i][v] = f[i-1][v] + f[i][v-coins[i]]
func waysToChange(n int) int {
var coins = []int{1,5,10,25}
m := len(coins)
f := make([][]int,m+1)
for i:=0;i<=m;i++{
f[i] = make([]int,n+1)
}
for i:=1;i<=n;i++{
f[0][i] = 0
}
for j:=0;j<=m;j++{
f[j][0] = 1
}
f[0][0] = 1
for i:=1;i<=m;i++{
for j:=1;j<=n;j++{
if j >= coins[i-1]{
f[i][j] = f[i-1][j] + f[i][j-coins[i-1]]
}else{
f[i][j] = f[i-1][j]
}
}
}
return f[m][n]%1000000007
}

  

dp背包 面试题 08.11. 硬币的更多相关文章

  1. http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html

    http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html

  2. 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理 状态压缩dp+背包dp

    题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...

  3. 蓝桥 PREV-34 历届试题 矩阵翻硬币

      历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB      问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第 ...

  4. URAL_1018 Binary Apple Tree 树形DP+背包

    这个题目给定一棵树,以及树的每个树枝的苹果数量,要求在保留K个树枝的情况下最多能保留多少个苹果 一看就觉得是个树形DP,然后想出 dp[i][j]来表示第i个节点保留j个树枝的最大苹果数,但是在树形过 ...

  5. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) J dp 背包

    J. Bottles time limit per test 2 seconds memory limit per test 512 megabytes input standard input ou ...

  6. POJ 1337 A Lazy Worker(区间DP, 背包变形)

    Description There is a worker who may lack the motivation to perform at his peak level of efficiency ...

  7. poj 1947(树形DP+背包)

    Rebuilding Roads Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10663   Accepted: 4891 ...

  8. hdu1561 The more, The Better (树形dp+背包)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1561 思路:树形dp+01背包 //看注释可以懂 用vector建树更简单. 代码: #i ...

  9. .NET面试题解析(11)-SQL语言基础及数据库基本原理

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...

随机推荐

  1. 多测师讲解html _段落标签002_高级讲师肖sir

    <html> <head> <meta charset="UTF-8"> <title>段落标签</title> < ...

  2. 以太坊PoW

    ethash ethash(eth+hash)是以太坊设计的挖矿算法,为了实现ASIC-resistance,ethash依赖于对内存资源的访问,是一种memory-hard函数.同时为了支持轻节点对 ...

  3. jmeter静默压测+可视化

    静默压测自动化脚本auto_stress_test.sh #!/usr/bin/env bash export jmx_template="test2" export suffix ...

  4. DateDiff() 方法语法 T-SQL语法

    表达式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) 允许数据类型: timeinterval 表示 ...

  5. 【Azure 环境】连接到微软云Azure中国区 By VS 2019, VS Code, Powershell

    问题情形 最近,在使用最新的VS Code插件连接到中国区的Azure时候,出现了依旧是global版的登录连接.这个问题是当前Azure Account插件最新版的问题,可以使用V0.8.11版本登 ...

  6. MySQL备份和恢复[2]-基于LVM的快照备份

    准备工作 请求锁定所有表 mysql> FLUSH TABLES WITH READ LOCK; 记录二进制日志文件及事件位置 mysql> FLUSH LOGS; mysql> S ...

  7. Docker学习—概念及基本应用

    1.Doker基本概念: Docker架构: Docker使用客户端-服务器架构.Docker客户端与Docker守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作  相关描 ...

  8. net core 微服务框架 Viper 调用链路追踪

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  9. pyqt5安装报错解决办法

    用国内快速的镜像源即可 pip install PyQt5 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  10. 自定义Jackson2HttpMessageConverter,适应.html后缀url

    Jackson2HttpMessageConverter 用处 SpringMVC中,controller中的方法返回java Bean对象,mvc将此对象转换成字符串 默认支持的mediaType: ...