題目**實現給定陣列arr,arr中所有的值都為正數且不重複。每個值代表一種面值的貨幣,每種面值的貨幣可以使用任意張,再給定乙個整數aim代表要找的錢數,求換錢有多少種方法。
public
intcoins1
(int
arr,
int aim)
int[
] dp =
newint
[arr.length]
[aim +1]
;//dp[i][j]的含義是在使用arr[0...i]貨幣的情況下,組成錢數j有多少種方法
for(
int i =
0; i < arr.length; i++
)for
(int j =
1; arr[0]
* j <= aim; j++
)for
(int i =
1; i < arr.length; i++)}
return dp[arr.length -1]
[aim];}
//壓縮輔助空間
public
intcoins2
(int
arr,
int aim)
int[
] dp =
newint
[aim +1]
;for
(int j =
0; arr[0]
* j <= aim; j++
)for
(int i =
1; i < arr.length; i++)}
return dp[aim]
;}
換錢的方法數
題目 給定陣列arr,arr中所有的值都為整數且不重複。每個值代表一種面值的貨幣,每種面值的貨幣可以使用任意張,再給定乙個整數代表要找的錢數,求換錢有多少種方法。舉例 arr 5,10,25,1 aim 0 組成0元的方法有1種,就是所有面值的貨幣都不用。所以返回1。arr 5,10,25,1 ai...
換錢的方法數
1.給定陣列arr,arr中所有的值都為正數且不重複。每個值代表一種面值的貨幣,每種貨幣都可以使用任意張,再給定乙個整數aim代表要找的錢數,求組成aim的最少貨幣數。方法一 暴力遞迴 遞迴部分 a index i就是用幾張a index process a,0,target defprocess ...
換錢的方法數
題目 給定陣列arr,所有元素都為正數且不重複。每個值代表一種面值的貨幣,每種面值的貨幣可以使用任意張,再給定乙個整數aim代表要找的錢數,求換錢有多少種方法。舉例 arr 5,10,25,1 aim 0 返回1。組成0元的方法有一種,即所有貨幣都不用 arr 3,5 aim 2 返回0。無法組成2...