题目描述 给定arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,求组成aim的方法数. 解题思路 完全背包 和"求换钱的最少张数"的转移来的状态完全相同. 初始化不同 转移方程为:dp[i][j]=dp[i-1][j]+dp[i][j-arr[i]] 代码 public class Solution { public int getMeansCnt(int arr[],int aim){ int[] dp=new i…
题意 给一个字符串,只由数字组成,若是'1'-'26',则认为可以转换为'a'-'z'对应的字母,问有多少种转换方法. 题解 状态转移很好想,注意dp多开一位,dp[0]为dp[2]的计算做准备.dp[i]表示到索引为i-1的字符(含)为止转换方法数. 代码 public class Main { public static void main(String args[]) { String str="01"; System.out.print(transMeans(str)); }…