騎士撥號器-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 位數字。你能用這種...