回溯 B010 LC 連續差相同的數字(構造)

2021-10-07 19:54:28 字數 875 閱讀 3335

返回所有長度為 n 且滿足其每兩個連續位上的數字之間的差的絕對值為 k 的非負整數。

請注意,除了數字 0 本身之外,答案中的每個數字都不能有前導零。例如,01 因為有乙個前導零,所以是無效的;但 0 是有效的。

你可以按任何順序返回答案。

輸入:n = 3, k = 7

輸出:[181,292,707,818,929]

解釋:注意,070 不是乙個有效的數字,因為它有前導零。

1 <= n <= 9

0 <= k <= 9

n、k 都很小,所以可以直接用搜尋做,這裡不必用字串去拼接字元,因為數字的位數是在遞增的,記錄最後一位列舉到的數字,以及直接用乘法和加法構造數字

注意這裡所說的是絕對值差,所以:

class

solution

if(dig + k <10)

dfs(idx+

1, dig+k, num*

10+ dig+k);if

(k >

0&& dig - k >=0)

dfs(idx+

1, dig-k, num*

10+ dig-k);}

vector<

int>

numssameconsecdiff

(int n,

int k)

; n = n; k = k;

for(

int i =

1; i <

10; i++

)dfs(1

, i, i)

;return ans;}}

;

複雜度分析

演算法馬拉松18 B 非010串

acm模版 這道題一開始一看,覺得是dp,後來發現資料太大,dp要死人的,於是想到了矩陣快速冪,在網上看到有人說可以dp,不懂他是怎麼做的,但是感覺一定會超時啊 這裡首先我們需要找到遞推式 01 an 10 bn 00 cn 11 dn 由此可以推出 an 1 bn cn bn 1 dn 因為需要排...

L1 048 矩陣A乘以B

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行 ca列,b有rb行 cb列,則只有ca與rb相等時,兩個矩陣才能相乘。輸...

L1 048 矩陣A乘以B

給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有ra行 ca列,b有rb行 cb列,則只有ca與rb相等時,兩個矩陣才能相乘。輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中給出其行數r和列數c,隨後r行,每行給出c個整數,以1個空格分隔,...