日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 967. 连续差相同的数字(BFS/DFS)

發布時間:2024/7/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 967. 连续差相同的数字(BFS/DFS) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題
      • 2.1 DFS
      • 2.2 BFS

1. 題目

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

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

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

示例 1: 輸入:N = 3, K = 7 輸出:[181,292,707,818,929] 解釋:注意,070 不是一個有效的數字,因為它有前導零。示例 2: 輸入:N = 2, K = 1 輸出:[10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98]提示: 1 <= N <= 9 0 <= K <= 9

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/numbers-with-same-consecutive-differences
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 簡單的模板題,一起加油!

2.1 DFS

class Solution {vector<int> ans; public:vector<int> numsSameConsecDiff(int N, int K) {if(N == 1)return {0,1,2,3,4,5,6,7,8,9};for(int i = 1; i <= 9; ++i)dfs(1,N,K,i);return ans;}void dfs(int count, int N, int K, int num){if(count == N)//位數夠了{ans.push_back(num);return;}int last = num%10;if(last+K <= 9)dfs(count+1, N, K, num*10+last+K);if(last-K >= 0 && K != 0) // K 為0,跟上面重復了dfs(count+1, N, K, num*10+last-K);} };

8 ms 8.2 MB

2.2 BFS

class Solution {vector<int> ans; public:vector<int> numsSameConsecDiff(int N, int K) {if(N == 1)return {0,1,2,3,4,5,6,7,8,9};queue<int> q;for(int i = 1; i <= 9; ++i)q.push(i);int cur, lastbit, size, len = 1;while(!q.empty()){size = q.size();while(size--){cur = q.front();q.pop();if(len == N)//位數夠了ans.push_back(cur);lastbit = cur%10;if(lastbit+K <= 9 && len < N)q.push(cur*10+lastbit+K);if(lastbit-K >= 0 && len < N && K != 0) // K 為0,跟上面重復了q.push(cur*10+lastbit-K);}++len;//位數+1}return ans;} };

4 ms 7.6 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 967. 连续差相同的数字(BFS/DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。