91 最小調整代價

2021-08-07 20:49:59 字數 659 閱讀 9644

2017.9.7

設定二維陣列 dp[i][j],表示 將第 i 個數調整到 j 時,當前最小的調整代價總和。

那麼初始化時,將第0 個元素調整到 j 時,dp[ 0 ][ j ] 就為 abs(j - arr[0])的值。

在之後的運算中,將第 i 個元素調整到 j 時 ,其前乙個元素的變化範圍為 【j - targer ,j + target】。

此時的dp[ i ][ j ] 應該為 arr[i] 調整到 j 的代價,加上 arr[i-1] 調整到【j - targer ,j + target】的最小值。

public class solution 

int dp = new int[length][101];

for(int j = 0; j < 101; j ++)

for(int i = 1; i < length; i++)

}dp[i][j] = math.abs((int)arr[i] - j) + tmp;

}} for(int j = 0; j < 101; j ++)

} return count;

}public int charge(int x)

if( x > 100)

return x;

}}

lintcode練習 91 最小調整代價

給乙個整數陣列,調整每個數的大小,使得相鄰的兩個數的差不大於乙個給定的整數target,調整每個數的代價為調整前後的差的絕對值,求調整代價之和最小是多少。對於陣列 1,4,2,3 和target 1,最小的調整方案是調整為 2,3,2,3 調整代價之和是2。返回2。你可以假設陣列中每個整數都是正整數...

LintCode 91 最小調整代價(動態規劃)

題目 dp i j 表示調整到第i個數時,此時,第i個數取值為j,為代價和最小。顯然dp i 1 k 已知,則調整的總代價為dp i j dp i 1 k abs j a i 由於j和k有多種取值可能,所以迴圈求解判斷,k表示前乙個數,j表示現在的數,假設j確定,那麼k的取值就是在乙個範圍內,因為差...

lintcode91 最小調整代價 動態規劃

給乙個整數陣列,調整每個數的大小,使得相鄰的兩個數的差不大於乙個給定的整數target,調整每個數的代價為調整前後的差的絕對值,求調整代價之和最小是多少。樣例 樣例 1 輸入 1 4,2 3 target 1 輸出 2樣例 2 輸入 3 5,4 7 target 2 輸出 1 注意事項 你可以假設陣...