java过了100 参考一下吧
public static int findways(int[] array,int sum){
int length = array.length;
int[][] dp =new int[length+1][sum+1];
for (int i = 0; i < sum+1; i++) {
dp[0][i] = 0;
}
dp[0][0] = 1;
for (int i = 1; i <=length ; i++) {
for (int j = 0; j <=sum ; j++) {
dp[i][j] = dp[i-1][j];
if(j>=array[i-1])
dp[i][j]+=dp[i-1][j-array[i-1]];
}
}
return dp[length][sum];
}