dp背包 面试题 08.11. 硬币
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
}
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. 硬币的更多相关文章
- http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html
		
http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html
 - 【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 ...
 - 蓝桥 PREV-34 历届试题 矩阵翻硬币
		
历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第 ...
 - URAL_1018 Binary Apple Tree 树形DP+背包
		
这个题目给定一棵树,以及树的每个树枝的苹果数量,要求在保留K个树枝的情况下最多能保留多少个苹果 一看就觉得是个树形DP,然后想出 dp[i][j]来表示第i个节点保留j个树枝的最大苹果数,但是在树形过 ...
 - 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 ...
 - POJ 1337 A Lazy Worker(区间DP, 背包变形)
		
Description There is a worker who may lack the motivation to perform at his peak level of efficiency ...
 - poj 1947(树形DP+背包)
		
Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10663 Accepted: 4891 ...
 - hdu1561 The more, The Better (树形dp+背包)
		
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1561 思路:树形dp+01背包 //看注释可以懂 用vector建树更简单. 代码: #i ...
 - .NET面试题解析(11)-SQL语言基础及数据库基本原理
		
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
 
随机推荐
- 2017-18-2 B2B实验+扩充
			
B2B模拟实验 [实验目的] 1.掌握B2B中供应商的供求信息发布.阿里商铺开设和订单交易等过程. 2.掌握B2B中采购商的采购信息的发布.交易洽谈.网上支付和收货等过程. [实验条件] 1.个人计 ...
 - 2017年 实验五  B2B模拟实验
			
实验五 B2B模拟实验 [实验目的] ⑴.掌握B2B中供应商的供求信息发布.阿里商铺开设和订单交易等过程. ⑵.掌握B2B中采购商的采购信息的发布.交易洽谈.网上支付和收货等过程. [实验条件] ⑴ ...
 - 有感于“U盘型人才”
			
先转载一篇互联网上转载比较多的一篇文章,文章是一名职业规划师写的: 上一阶段欠的债,下一阶段总要还,剩男剩女的家里比较着急也是这个道理,该结婚的时候不结婚,生涯任务没完成,必将影响下一段 ...
 - 题解:POI2012 Salaries
			
题解:POI2012 Salaries Description The Byteotian Software Corporation (BSC) has \(n\) employees. In BSC ...
 - day47 Pyhton 数据库Mysql 04
			
# 表结构 # 建表 - 表的增加 # create table # 删表 - 表的删除 # drop table # 改表 - 表的修改 # alter table 表名 # rename 新表名 ...
 - JS 身份证号码验证
			
function checkIdcard(idcard) { var Errors = new Array( "验证通过!", "身份证号码位数不对!", &q ...
 - Dubbo源码本地运行demo遇到的问题
			
从github上拉下来的Dubbo源码,运行Dubbo项目的demo工程,报如下错误(Dubbo版本为2.7.6): Exception in thread "main" java ...
 - nginx tp5配置
			
location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.soc ...
 - JUC---04Lock(二)ReentrantReadWriteLock
			
1.读写锁 分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可.如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁:如果你的代码修改数据,只能 ...
 - 使用阿里云镜像仓库构建国外 Docker 镜像
			
使用阿里云镜像仓库下载国外镜像 在日常使用 Docker 或 K8S 的过程中,经常会需要到国外的网站中下载镜像,但是有些网站在国内是无法访问的.对于这个问题可以使用阿里云提供的镜像仓库进行下载,然后 ...