方格路線條數(shù)算法 奧數(shù) 走格子路線算法?
走格子路線算法?給定一個二維數(shù)組,找出是否有從左上角到右下角的路徑。在給定的二維數(shù)組中,當單元格值為-1時,表示不能通過;當單元格值為0時,表示可以通過。例如:給定如下二維數(shù)組:{0,0,0,-1,0
走格子路線算法?
給定一個二維數(shù)組,找出是否有從左上角到右下角的路徑。在給定的二維數(shù)組中,當單元格值為-1時,表示不能通過;當單元格值為0時,表示可以通過。
例如:給定如下二維數(shù)組:
{0,0,0,-1,0},
{1,0,0,-1,-1},]{0,0,-1,0},
{1,0,0,0,0},
{0,0,-1,0}]路徑存在,返回yes
{0,0,0,-1,0},
{1,0,0,-1},
{0,0,-1,0},
{1,0,-1,0},
{,0}
路徑不存在,返回no
算法分析
解決此問題的簡單方法是使用BFS或DFS算法來查找是否有一條合格的路徑(path)。
更好的解決方案是通過將所有可訪問節(jié)點的值更改為1來標記它們。
首先,將左上角第一個元素的值標記為1。然后獲取第一行中的下一個(當前)值,并將其與上一個值進行比較。僅當當前值可到達(不等于-1)時,才將其設置為上一個值。類似地,對列值執(zhí)行相同的操作,方法是將當前值與前一列的值(如果可以訪問)進行比較并進行設置。
然后從第一行和第一列開始,獲取前一行和前一列的值。找到它們之間的最大值,并將當前索引設置為該最大值。如果當前索引值為-1,則沒有更改。
最后,如果右下角的最終索引為1,則返回“是”,否則返回“否”。
數(shù)學--計算線段個數(shù)的公式是什么?
枚舉,找出規(guī)律,得到規(guī)律公式。2個端點:線段數(shù)=1 3個端點:線段數(shù)=2 1=3或3×2△2=3 4個端點:線段數(shù)=3 21=6或4×3△2=6 5個端點:線段數(shù)=4 32 1=10或5×4△2=10,依此類推N個端點:線段數(shù)=N(N-1)2 1或N×(N-1)△2,即:線段數(shù)=端點數(shù)×(端點數(shù)-1)△2,我們采用算術(shù)數(shù)列求和公式:求和=(第一項和最后一項)×項數(shù)△2