[算法]年終獎
阿新 • • 發佈:2017-06-04
公司 算法 矩陣 mat 年終獎 返回 放置 裏的 i++
【轉載:http://blog.csdn.net/codeemperor/article/details/51068478】
小東所在公司要發年終獎,而小東恰好獲得了最高福利,他要在公司年會上參與一個抽獎遊戲,遊戲在一個6*6的棋盤上進行,上面放著36個價值不等的禮物,每個小的棋盤上面放置著一個禮物,他需要從左上角開始遊戲,每次只能向下或者向右移動一步,到達右下角停止,一路上的格子裏的禮物小東都能拿到,請設計一個算法使小東拿到價值最高的禮物。
給定一個6*6的矩陣board,其中每個元素為對應格子的禮物價值,左上角為[0,0],請返回能獲得的最大價值,保證每個禮物價值大於100小於1000。
考察動態規劃:
1import java.util.*; 2 3 public class Bonus { 4 public int getMost(int[][] board) { 5 // write code here 6 int n = board.length; 7 int[][] dp = new int[n][n]; 8 dp[0][0] = board[0][0]; 9 for (int i = 1; i < n; i++) { 10 dp[0][i] = dp[0][i-1]+board[0][i];11 dp[i][0] =dp[i-1][0]+board[i][0]; 12 13 } 14 for (int i = 1; i < n; i++) { 15 for (int j = 1; j < n; j++) { 16 dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + board[i][j]; 17 } 18 } 19 return dp[n - 1][n - 1];20 } 21 }
[算法]年終獎