騎士撥號器 c 解題思路

2021-10-07 06:51:22 字數 680 閱讀 5699

騎士撥號器-c++解題思路

思路:每乙個號碼,是由上面一輪的某個或者某幾個號碼,通過跳「日」得到的。

**:

#include

#include

#include

using

namespace std;

//騎士跳「日」

long m =

1e9+7;

intknightdialer

(int n)

//儲存最終結果的vetor

vector<

long

>

dp1(10,

1);int step =1;

while

(step

int result =0;

for(

int i=

0;isize()

;i++)}

return result;

}int

main()

結果

可優化的點

將dp2放到while迴圈之外,可以減少多次建立相同的vector,節省空間和加快執行速度。

935 騎士撥號器 c 解題方法二

思路 將0 9分為四個部分 include include include using namespace std 騎士跳 日 long m 1e9 7 intknightdialer int n vector long dp1 4 有四個數 dp1 0 4 有兩個數 dp1 1 2 有兩個數 dp...

每日刷題 騎士撥號器

這一次,我們將 騎士 放在 撥號盤的任意數字鍵 如上圖所示 上,接下來,騎士將會跳 n 1 步。每一步必須是從乙個數字鍵跳到另乙個數字鍵。每當它落在乙個鍵上 包括騎士的初始位置 都會呼出鍵所對應的數字,總共按下 n 位數字。你能用這種方式呼出多少個不同的號碼?因為答案可能很大,所以輸出答案模 10 ...

C語言重構 935 騎士撥號器

所有題目源 git位址 題目西洋棋中的騎士可以按下圖所示進行移動 這一次,我們將 騎士 放在 撥號盤的任意數字鍵 如上圖所示 上,接下來,騎士將會跳 n 1 步。每一步必須是從乙個數字鍵跳到另乙個數字鍵。每當它落在乙個鍵上 包括騎士的初始位置 都會呼出鍵所對應的數字,總共按下 n 位數字。你能用這種...