首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动态规划: 给我个机会,我再兑换一次零钱

编写一个函数来计算可以凑成总金额所需最少硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币数量无限。...在动态规划专题我们讲过了求组合数动态规划:518.零钱兑换II,求排列动态规划:377. 组合总和 Ⅳ。...但最终又可以稀里糊涂把题目过了,也不知道为什么这样可以过,反正就是过了,哈哈 那么这篇文章就把遍历顺序分析清清楚楚。 动态规划:518.零钱兑换II中求组合数,动态规划:377....组合总和 Ⅳ中求排列本题要求最少硬币数量,硬币组合数还是排列都无所谓!所以两个for循环先后顺序怎样都可以!...这也是我为什么要先讲518.零钱兑换II 然后再讲本题即:322.零钱兑换,这是Carl良苦用心那。 相信大家看完之后,对背包问题中遍历顺序又了更深理解了。

45810

四种黑盒测试方法_八大心态总结怎么写

3.边界值分析方法考虑 长期测试工作经验告诉我们,大量错误发生在输入输出范围边界上,不是发生在输入输出范围内部。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 –输入:实数 –输出:实数 –规格说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息”平方根非法-输入值小于0″并返回0;库函数Print-Line...b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 边界值分析: 划分(ii)边界为0和最大正实数;划分(i)边界为最小负实数和0。...如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。 比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

42110
您找到你想要的搜索结果了吗?
是的
没有找到

每日手撕一道算法题-322.零钱兑换

每日手撕一道算法题-322.零钱兑换 322. 零钱兑换 题目: 给定不同面额硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需最少硬币个数。...示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coins = [2], amount = 3...输出: -1 解析 举例面值1,2,5 可以逆推。...凑11最少硬币 = 凑10最少硬币/凑9最少硬币/凑6最少硬币 中最少那个 凑10最少 = 凑9最少 / 凑8最少 / 凑5最少 最少那个 依次循环 转成正向思路,开辟长度...后面数组索引代表凑目标值。 1号索引,求凑1最少个数,遍历面值1,2,5。因为目标值1-硬币1>=0。目标值1-硬币1 = 剩余值。 剩余值 >= 0。说明数组中有结果,可以直接用。

67440

零钱兑换再看动态规划套路

我们来看两个例子: 输入: coins = [1, 2, 5], amount = 11 输出: 3 输入: coins = [2], amount = 3 输出: -1 每次遇到这样问题我们总是本能地用暴力递归来做...2.当前硬币面额小于需要换零额度时,我们就用它来换零,在这种情况下,我们就需要拿到能换到剩余数额最小硬币。...那此时最小硬币就是dp[index][t-denominations[index]] + 1。 最终,我们最小硬币一定是这两种选择中最小那一个。...当我们有面值为1,2两种硬币时,当我们对5进行兑换时,不选择2这个面值的话,dp[0][5]5,也就是我们需要5个面值为1硬币dp[1][3]2,那这种情况兑换硬币就只要3个。...最终兑换5所需最少硬币就是3. 好了,思路都解释清楚了,剩下来就是代码实现了。

42720

软件测试 黑盒_软件测试黑盒测试报告

,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书规定正常使用,程序是否能适当地接收输入产生正确输出信息,并且保持外部信息(如数据库或文件)完整性。...3.2.2、边界值分析法应用 根据大量测试统计数据,很多错误发生在输入输出范围边界上,不是发生在输入/输出范围中间区域。...2、如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少1,比最大个数多1作为测试数据。...4、根据规格中每个输出条件,使用原则2,如果输出条件规定了值个数,则用最大个数、最小个数,比最小个数少1,比最大个数多1作为测试数据。...反映结果输出条件有:退还1元硬币,退还5角硬币,送出“橙汁”饮料,送出“啤酒”饮料。由于“售货机有零钱找”在投入1元硬币时判断是否能找零钱依据,所以也可把它看作一个输入条件,即原因。

2.4K10

黑盒 测试用例设计方法「建议收藏」

边界值分析法应用 根据大量测试统计数据,很多错误发生在输入输出范围边界上,不是发生在输入/输出范围中间区域。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 –输入:实数 –输出:实数 –需求说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息”平方根非法-输入值小于0″并返回0;库函数Print-Line...b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 B: 边界值分析: 划分(ii)边界为0和最大正实数;划分(i)边界为最小负实数和0。...如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。 例如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

1.1K20

黑盒测试方法介绍_黑盒测试两种基本方法

3.边界值分析方法考虑: 长期测试工作经验告诉我们,大量错误发生在输入输出范围边界上,不是发生在输入输出范围内部。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 —输入:实数 —输出:实数 —规格说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息...b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 3)边界值分析: 划分(ii)边界为0和最大正实数;划分(i)边界为最小负实数和0。...2)如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

83210

黑盒测试用例设计方法详解

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生测试情况。 分析方法: 大量错误发生在输入输出范围边界上,不是发生在输入输出范围内部。...例:测试计算平方根函数 输入:实数 输出:实数 规格说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息“平方根非法,输入值小于0”并返回...2) 如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币。...1) 分析这一段说明,列出原因和结果 原因: 1——售货机有零钱找 2——投入1元硬币 3——投入5角硬币 4——押下橙汁按钮 5——.押下啤酒按钮 结果: 21——售货机〖零钱找完〗灯亮

1.6K20

力扣每日一刷(2023.9.14)

计算并返回可以凑成总金额所需 最少硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币数量无限。...80%BB%E6%8D%A2)一个类型题, 上一道这个题要求返回凑成总金额组合数, 本题返回可以凑成总金额所需最少硬币个数 所以这两道题在递推公式上略有不同。...注意: 因为要获取最少硬币个数 ,所以在初始化dp数组时候需要将其赋予最大值, 这样才能再每次递推时候获取最小值(也就是最少使用硬币个数) 对于dp[0]初始化,这里给dp[0] = 0,按照题意总金额为...表示 凑成总金额为i所需最少硬币为 dp[i] //需要计算最大硬币面值 for(int i = 0;i < dp.length; i++){...完全平方 一个整数,其值等于另一个整数平方;换句话说,其值等于一个整数自乘积。例如,1、4、9 和 16 都是完全平方 3 和 11 不是。

8510

黑盒测试用例设计方法之因果图法

大家好,又见面了,我你们朋友全栈君。 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。...Ø 输出条件约束类型 输出条件约束只有M约束(强制):若结果a1,则结果b强制为0。 3....采用因果图法设计测试用例步骤: 1) 分析软件规格说明描述中,那些原因(即输入条件或输入条件等价类),那些结果(即输出条件),并给每个原因和结果赋予一个标识符。...实例1,字符 某软件规格说明书包含这样要求:第一列字符必须A或B,第二列字符必须一个数字,在此情况下进行文件修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

63810

LeetCode-322-零钱兑换

# LeetCode-322-零钱兑换 给定不同面额硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需最少硬币个数。...示例1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例2: 输入: coins = [2], amount = 3 输出...假设我们知道F(S),即组成金额S最少硬币,最后一枚硬币面值C。...方法3、动态规划-自下而上: 采用自下而上方式进行思考,仍定义F(i)为组成金额i所需最少硬币数量,假设在计算F(i)之前,我们已经计算出F(0)-F(i-1)答案,则F(i)对应转移方程为...其中cj代表第j枚硬币面值,即我们枚举最后一枚硬币面额cj,那么需要从i-cj这个金额状态F(i-cj)转移过来,再算上枚举这个硬币数量1贡献,由于要硬币数量最少,所以F(i)为:前面能转移过来状态最小值加上枚举硬币数量

50320

功能测试数据测试之因果图分析方法

左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 3) Ci表示原因,通常置于图左部;ei表示结果,通常在图右部。...④ R约束(要求):a1时,b必须1,即不可能a1时b0。 B.输出条件约束类型   输出条件约束只有M约束(强制):若结果a1,则结果b强制为0。 ---- 实战练习 1....某软件规格说明书包含这样要求:第一列字符必须A或B,第二列字符必须一个数字,在此情况下进行文件修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。   ...按条件各种组合情况产生对应动作。原因1和原因2不能同时成立,故可排除这种情况。从判定表可设计出测试用例:表中1表示存在,相反则为0,6个测试用例所需数据。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

44630

C++ 不知算法系列之深入动态规划算法思想

但是,C5~E中间可以经过D8和D9,C5~D8~E路程4,C5~D9~E路程13,则需要在两者中选择最小值,即min(4,13),或说C5~E最短路程4。...:"<< db[i]<<endl; } return 0; } 输出结果: 2.2 找零钱 2.2.1 问题描述 给你k种面值硬币,面值分别为c1, c2 ... ck,每种硬币数量无限,再给一个总金额...零钱为 1,2,3,4分时,都只能由 1 分硬币组成,找回硬币数分别是:1枚,2枚,3枚,4枚。如下图所示: 找零为 5 时,可以有 2 种选择方案。...原理很简单,对于 11 分钱零钱而言,可以先拿出一枚 1分硬币,也可以先拿出一枚5分硬币,或者拿出一枚 10分硬币,然后再计算剩下钱需要找回多少硬币。...要找零钱可看成背包容量,每一类币种可以看成物品重量,求解恰好装满背包所需最少硬币。 解决问题后,需学会总结、归纳。方能看破表象,找出本质。

43510

LeetCode-322-零钱兑换

# LeetCode-322-零钱兑换 给定不同面额硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需最少硬币个数。...输出: -1 说明: 你可以认为每种硬币数量无限。...假设我们知道F(S),即组成金额S最少硬币,最后一枚硬币面值C。...方法3、动态规划-自下而上: 采用自下而上方式进行思考,仍定义F(i)为组成金额i所需最少硬币数量,假设在计算F(i)之前,我们已经计算出F(0)-F(i-1)答案,则F(i)对应转移方程为...其中cj代表第j枚硬币面值,即我们枚举最后一枚硬币面额cj,那么需要从i-cj这个金额状态F(i-cj)转移过来,再算上枚举这个硬币数量1贡献,由于要硬币数量最少,所以F(i)为:前面能转移过来状态最小值加上枚举硬币数量

47410

测试用例设计方法(全)「建议收藏」

3.边界值分析方法考虑: 长期测试工作经验告诉我们,大量错误发生在输入输出范围边界上,不是发生在输入输出范围内部。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 –输入:实数 –输出:实数 –规格说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息...b、输入-10,输出0和错误提示。对应于 (i) 和(b) 。 3)边界值分析: 划分(ii)边界为0和最大正实数;划分(i)边界为最小负实数和0。...2)如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

99240

【测试】黑盒测试用例设计方法

边界值分析法应用 根据大量测试统计数据,很多错误发生在输入输出范围边界上,不是发生在输入/输出范围中间区域。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 –输入:实数 –输出:实数 –需求说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息”平方根非法-输入值小于0″并返回0;库函数Print-Line...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币。...,并退回输入密码界面。   三次输入密码错误时,自动退卡,锁卡。提示:“密码错误,密码输入次数超限!”。 c)用户输入取款金额,系统校验金额正确。即取款机余款大于用户取款金额。...若用户输入取款金额不正确,提示:“输入错误!”。   此处为分析方便忽略输入取款金额错误各种情况下异常流程处理,降低分析复杂度。

90910

黑盒测试之测试用例设计方法(全)

3.边界值分析方法考虑: 长期测试工作经验告诉我们,大量错误发生在输入输出范围边界上,不是发生在输入输出范围内部。因此针对各种边界情况设计测试用例,可以查出更多错误。...例:测试计算平方根函数 --输入:实数 --输出:实数 --规格说明:输入一个0或比0大时候,返回其正平方根;输入一个小于0时,显示错误信息...b、输入-10,输出0和错误提示。对应于 (i) 和(b) 。 3)边界值分析: 划分(ii)边界为0和最大正实数;划分(i)边界为最小负实数和0。...2)如果输入条件规定了值个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一作为测试数据。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

4.3K71

因果图方法_因果图法符号

④R约束(要求):a1时,b必须1,即不可能a1时b0。   B.输出条件约束类型   输出条件约束只有M约束(强制):若结果a1,则结果b强制为0。   ...5.采用因果图法设计测试用例步骤:   1)分析软件规格说明描述中, 那些原因(即输入条件或输入条件等价类),那些结果(即输出条件), 并给每个原因和结果赋予一个标识符。   ...二.实战演习   1.某软件规格说明书包含这样要求:第一列字符必须A或B,第二列字符必须一个数字,在此情况下进行文件修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息...表中8种情况左面两列情况中,原因①和原因②同时为1,这是不可能出现,故应排除这两种情况。表最下一栏给出了6种情况测试用例,这是我们所需数据。   ...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币

97020

软件测试:系统测试之因果图方法

④R约束(要求):a1时,b必须1,即不可能a1时b0。 B.输出条件约束类型 输出条件约束只有M约束(强制):若结果a1,则结果b强制为0。 5....采用因果图法设计测试用例步骤: 1)分析软件规格说明描述中, 那些原因(即输入条件或输入条件等价类),那些结果(即输出条件), 并给每个原因和结果赋予一个标识符。...某软件规格说明书包含这样要求:第一列字符必须A或B,第二列字符必须一个数字,在此情况下进行文件修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。...若售货机没有零钱找,则一个显示零钱找完〗红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完〗红灯灭,在送出饮料同时退还5角硬币。...因果图法着重测试规格说明中输入输出依赖关系。

1.2K20

八十九、动态规划系列背包问题之完全背包

示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9 首先,明确dp,然后找dp转移方程。 这里,dp[i]:表示完全平方和为i 最小个数。...示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长上升子序列 [2,3,7,101],它长度 4。...编写一个函数来计算可以凑成总金额所需最少硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。...示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coins = [2], amount = 3 输出...: int) -> int: # 第一步:定义dp数组或变量,首先明确题目说每种硬币数量无限,但是会给定一个固定 amount 金额,我们需要用最少硬币凑出这个金额,如果01

27830
领券