乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例 1:
輸入:n = 2
輸出:2
示例 2:
輸入:n = 7
輸出:21
示例 3:
輸入:n = 0
輸出:1
/**
* @param n
* @return
*/var
numways
=function
(n)var ways=
; ways[0]
=1; ways[1]
=1;for
(i=2
;i1;i++
)return ways[n];}
;
乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。
機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。問總共有多少條不同的路徑?
var
robot
=function
(m,n)
for(
var i=
0;i1;i++
)for
(var i=
0;i1;i++
) f[1]
[1]=
1;for(
var i=
1;i1;i++
) f[i]
[j]=f[i-1]
[j]+f[i]
[j-1];
//狀態轉移方程}}
return f[m]
[n];
} console.
log(
robot(7
,3))
;
給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。
說明:每次只能向下或者向右移動一步。
示例: 輸入:[ [1,3,1], [1,5,1], [4,2,1] ]
輸出: 7
解釋: 因為路徑 1→3→1→1→1 的總和最小。
var
minway
=function
(grid)
sum[0]
[0]= grid[0]
[0];
for(
var i=
0;i)else
if( i-
1<0)
else
if( j-
1<0)
else}}
return sum[grid.length-1]
[grid[0]
.length-1]
;//sum[m][n]=math.min(sum[m-1][n],sum[m][n-1])+grid[m][n];//狀態轉移方程
}var grid =[[
1,3,
1],[
1,5,
1],[
4,2,
1]]console.
log(
minway
(grid)
);
動態規劃(3)
robberies include include include includeusing namespace std 這題是參考的 自己的能力還是不可以。不過做了這題,再和0 1揹包問題想一想,覺得收穫還是不錯。說將逃跑率當成物品價值 小弟還是要繼續消化這條題的思想。double f 10020...
3動態規劃
此次專題主要講解動態規劃,題目大致分為兩類 一種是遞迴來解決,一種是0 1揹包問題。動態規劃就是把乙個問題分成多個階段來解決,並且每個階段都相互有所聯絡。其遵循最優性原理。1,不論初始狀態和第一步決策是什麼,餘下的決策相對於前一次決策所產生的新狀態,構成乙個最優決策序列。2,最優決策序列的子串行,一...
動態規劃 3
尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完成,尼克可以任選其中的乙個來做,而其...