Advertisement
sweet1cris

Untitled

Jan 9th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.00 KB | None | 0 0
  1. public class Solution {
  2.     /**
  3.      * @param A: An integer array.
  4.      * @param target: An integer.
  5.      */
  6.     public int MinAdjustmentCost(ArrayList<Integer> A, int target) {
  7.         // write your code here
  8.         int n = A.size();
  9.         int[][] f = new int[n + 1][101];
  10.         for (int i = 0; i <= n ; ++i)
  11.             for (int j = 0; j <=100; ++j)
  12.                 f[i][j] = Integer.MAX_VALUE;
  13.         for (int i = 0; i <= 100; ++i)
  14.             f[0][i] = 0;
  15.         for (int i = 1; i <=n; ++i)
  16.             for (int  j = 0; j <= 100;++j)
  17.                 if (f[i-1][j] != Integer.MAX_VALUE)
  18.                 for (int k = 0; k <= 100; ++k)
  19.                     if (Math.abs(j-k) <= target)
  20.                     if (f[i][k] > f[i-1][j] + Math.abs(A.get(i-1)-k))
  21.                         f[i][k] = f[i-1][j] + Math.abs(A.get(i-1)-k);  
  22.         int ans = Integer.MAX_VALUE;
  23.         for (int i = 0; i <= 100; ++i)
  24.             if (f[n][i] < ans)
  25.                 ans = f[n][i];
  26.         return ans;
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement