鍍金池/ 問答/人工智能  Java  Python  C++  HTML/ 一個(gè)算法問題

一個(gè)算法問題

A與B做游戲。 在一個(gè)n*m的矩陣中的出發(fā)點(diǎn)是(1,m),終點(diǎn)是(n,1),規(guī)則是只能向左移動(dòng)一格,向下一格或向左下移動(dòng)一格,先走到終點(diǎn)的為winner。 A先走。

給定兩個(gè)整數(shù)n和m,請(qǐng)返回最后的獲勝者的名字(A或B)。

網(wǎng)上解法如下:

clipboard.png

②里講的是什么?為什么變成了B先走?

不想貼代碼是因?yàn)榇a也就那樣+-*/會(huì)個(gè)語言基礎(chǔ)都能看懂,我是想問為什么要這樣?

回答
編輯回答
寫榮

其實(shí)無非就是一個(gè)遞歸問題,n*m的矩陣問題,如果橫著走,就轉(zhuǎn)化為n*(m-1)的問題;如果豎著走,就轉(zhuǎn)化為(n-1)*m的問題;如果斜著走,就轉(zhuǎn)化為(n-1)*(m-1)的問題……最終轉(zhuǎn)化為有著確定的勝負(fù)結(jié)果的一行或一列的問題。

2017年10月2日 19:16