public int mincoinsl(int[] arr, int aim){ if (arr == null || arr.length== 0|| aim <0){ return -1; } int n = arr.length; max = Integer.MAX_VALUE; int[] dp = new int[aim+1]; for (int j = 1; j < aim+1; j++){ dp[j] = max; if (j-arr[0]>=0 && dp[j-arr[0]] !=max){ dp[j] = dp[j-arr[0]] + 1; } } int left = 0; for (int i = 1; i < n; i ++){ for (int j = 1; j < aim+1; j++){ if (j- arr[i]>=0&& dp[j-arr[i]] !=max) left = dp[j-arr[i]] +1; dp[j]= Math.min(left,dp[j]); } } return dp[aim] != max ? dp[aim]:-1; }
近期评论