程式設計練習 part6

2021-10-04 13:17:23 字數 1335 閱讀 1118

題目:

小東所在公司要發年終獎,而小東恰好獲得了最高福利,他要在公司年會上參與乙個**遊戲,遊戲在乙個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 ...