題目:
小東所在公司要發年終獎,而小東恰好獲得了最高福利,他要在公司年會上參與乙個**遊戲,遊戲在乙個6*6的棋盤上進行,上面放著36個價值不等的禮物,每個小的棋盤上面放置著乙個禮物,他需要從左上角開始遊戲,每次只能向下或者向右移動一步,到達右下角停止,一路上的格仔裡的禮物小東都能拿到,請設計乙個演算法使小東拿到價值最高的禮物。
給定乙個6*6的矩陣board,其中每個元素為對應格仔的禮物價值,左上角為[0,0],請返回能獲得的最大價值,保證每個禮物價值大於100小於1000。
解析:本題要用到動態規劃,這個棋盤是乙個二維陣列,行列都是6,本題本質上是求從左上角到右下角的最大值的和。分四種情況:
1.i=0&&j=0,說明這是左上角,直接跳過就可以
2.i=0,說明這是第一列,那麼此時的dp[i][j] +=dp[i][j-1],該位置上面的值
3.j=0,說明這是第一行,那麼此時的dp[i][j]++dp[i-1][j],該位置左邊的值
4其他位置,dp[i][j] += max(dp[i-1][j],dp[i][j-1]);左邊的和上面的較大值。
**:
class
bonus
}return dp[5]
[5];
}};
題目:
定義乙個二維陣列n*m(其中2<=n<=10;2<=m<=10),如5 × 5陣列下所示:
int maze[5][5] = );
if(i==n-
1&&j==m-1)
if(best.
empty()
||tmp.
size()
size()
) best = tmp;
if(i-
1>=
0&&maze[i-1]
[j]==
0)判斷向上走
mazetrack
(i-1
,j);
if(i+
1[j]==
0)向下走
mazetrack
(i+1
,j);
if(j-
1>=
0&&maze[i]
[j-1]==
0)向左走
mazetrack
(i,j-1)
;if(j+1
[j+1]==
0)向右走
mazetrack
(i,j+1)
; maze[i]
[j]=
0;把該位置設為未走
tmp.
pop_back()
;}intmain()
}
Part6 使用STL程式設計總結
count,find用於乙個無序的容器集合內。count返回是否存在這個值,如果有,那麼有多少個?find則用於考慮 是否存在這個值,如果有,那麼第乙個在哪兒?找到後立即會返回。所有,兩個的方法的用處不一樣,find的效率會高於count,因為它是找到後就立即返回。從無序區間遷移到有序區間導致了另乙...
物件導向 part6 繼承
js實現的是實現繼承 也就是繼承實際的方法 主要依賴 原型鏈 基本思路 就是乙個引用型別繼承另乙個引用型別的屬性和方法 詳細 建構函式,例項,原型之間的關係。每個建構函式都有乙個原型物件,原型物件都包含乙個指標指向建構函式 每個例項都包含乙個內部指標指向原型。假如我們讓乙個原型物件等於寧乙個型別的例...
C語言入門part6 函式
關鍵字 庫函式,自定義函式,函式的巢狀呼叫及鏈式訪問,遞迴,strlen 和sizeof的區別,p 和 p 的區別 庫函式 strcpy字串複製strcat字串拼接 char string 80 char ch hello world strcpy string,ch 或者這兩行改為 strcpy ...