中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

如何建設(shè)網(wǎng)站 企業(yè)十大搜索引擎

如何建設(shè)網(wǎng)站 企業(yè),十大搜索引擎,廊坊市建設(shè)網(wǎng)站,唐山網(wǎng)站網(wǎng)站建設(shè)題目描述 括號。設(shè)計一種算法,打印n對括號的所有合法的(例如,開閉一一對應(yīng))組合。 說明:解集不能包含重復的子集。 例如,給出 n 3,生成結(jié)果為: ["((()))","(()())…

題目描述

括號。設(shè)計一種算法,打印n對括號的所有合法的(例如,開閉一一對應(yīng))組合。

說明:解集不能包含重復的子集。

例如,給出 n = 3,生成結(jié)果為:

["((()))","(()())","(())()","()(())","()()()"
]

解題思路與代碼

這道題抽象總結(jié)出來,就只有兩條規(guī)則,分別是:

  • 左括號的數(shù)量不能多于n
  • 右括號的數(shù)量不能多于左括號

方法一 : 回溯法

這道題我看了一下,比較適合用回溯法去解決。

  • 我們需要一個輔助函數(shù)backtracking,它一共需要設(shè)置這么幾個參數(shù),分別是左括號的數(shù)量left,右括號的時候,right,n的大小n,存儲結(jié)果集的向量result,一個string用來放括號字符str,共5個參數(shù)。

  • 寫一道回溯算法的題的時候,一般是先去想,這算法該如何返回。那么當str的長度等于2倍的n時,就該返回了,把str存入result后返回

  • 之后我們就要去做判斷了。這道題和一般的回溯算法不一樣,我們這里不需要去使用for循環(huán),直接進行條件判斷就好了

  • 如果左括號的數(shù)量小于n,我們就往str中加上一個左括號,然后進行回溯,回溯結(jié)束后,不要忘記刪除加入str的括號。

  • 如果右括號的數(shù)量小于左括號的數(shù)量,我們就往str中加入一個右括號,然后進行回溯,回溯結(jié)束后,別忘記加入str中的括號

整個回溯的邏輯就是這樣,下面請看具體代碼:

class Solution {
public:// 左括號的數(shù)量不能大于 n 。// 右括號的數(shù)量不能大于當前已經(jīng)添加的左括號的數(shù)量。vector<string> generateParenthesis(int n) {vector<string> result;string str;backtracking(0,0,str,result,n);return result;}void backtracking(int left,int right,string& str,vector<string>& result,int n){if(str.size() == 2*n){result.push_back(str);return ;}if(left < n){str += "(";backtracking(left+1,right,str,result,n);str.pop_back();}if(left > right ){  str += ")";backtracking(left,right+1,str,result,n);str.pop_back();}}
};

在這里插入圖片描述

復雜度分析

時間復雜度:

在這個問題中,我們需要生成所有可能的合法括號組合。對于每個位置,我們可以選擇添加左括號或右括號(當然要滿足條件)。因此,在最壞的情況下,時間復雜度可以看作是 O(2^(2n)/√n)。這個估計來自于卡特蘭數(shù)(Catalan number),它是解決這類問題(括號生成)的通常方法。對于 n 對括號,卡特蘭數(shù) C(n) = (1/(n+1))(2n)!/((n!)(n+1)!))??ㄌ靥m數(shù)增長的速度相當于 O(4^n/(n*√n))。

空間復雜度:

空間復雜度主要取決于兩個方面:遞歸深度和結(jié)果列表。遞歸深度最多為 2n,因為每個遞歸調(diào)用都會消耗 O(1) 的??臻g,所以遞歸調(diào)用棧的空間復雜度為 O(2n)。結(jié)果列表中包含 C(n) 個元素,每個元素是一個長度為 2n 的字符串。因此,結(jié)果列表的空間復雜度為 O(C(n) * 2n) = O(4^n/√n * 2n)。

總結(jié)

這道題可以歸類為回溯算法可以解決一類問題中的排列問題。但這和普通的排列問題還不一樣,這是一種特殊的排列問題。因為左括號的數(shù)量要始終要大于右括號,有了限制條件后,就和一般的排列問題不一樣了。

還是很有意思的,這一道題。這道題用回溯算法已經(jīng)算是最優(yōu)解了

這道題的解決方案與卡特蘭數(shù)相關(guān),它的時間復雜度和空間復雜度都與卡特蘭數(shù)有關(guān)。

在這種情況下,嘗試尋找一種更好的方法并不容易。因為我們需要生成所有可能的合法括號組合,所以無論如何,我們都需要遍歷這個解空間。回溯算法在這里表現(xiàn)得非常好,因為它能夠在滿足約束條件的情況下生成所有可能的解。而且,它在遍歷解空間時非常高效,因為它可以在不滿足條件的情況下立即剪枝。

當然,這并不意味著沒有其他方法可以解決這個問題。例如,你可以嘗試動態(tài)規(guī)劃,但這種方法的實現(xiàn)會更加復雜,而且在這種情況下它的性能可能不如回溯算法。所以,對于這道題,回溯方法已經(jīng)是很好的解決方案了。

http://www.risenshineclean.com/news/56753.html

相關(guān)文章:

  • 網(wǎng)站需要公安局備案嗎資源
  • 小型手機網(wǎng)站建設(shè)推薦長沙靠譜seo優(yōu)化
  • 泰州網(wǎng)站建設(shè)定制建設(shè)一個網(wǎng)站的具體步驟
  • 深圳做棋牌網(wǎng)站建設(shè)哪家便宜線上推廣方式都有哪些
  • 網(wǎng)站flash效果以網(wǎng)紅引流促業(yè)態(tài)提升
  • 唐山公司網(wǎng)站建設(shè) 中企動力免費做網(wǎng)站
  • 做網(wǎng)站的公司那家好。國際購物網(wǎng)站平臺有哪些
  • 宿州做網(wǎng)站網(wǎng)絡(luò)推廣賺錢平臺有哪些
  • 東莞做網(wǎng)站公司有哪些如何去推廣
  • 招遠做網(wǎng)站重慶seo扣費
  • 建程網(wǎng)的工程好拿錢嗎重慶seo的薪酬水平
  • 廣州做網(wǎng)站哪里好小程序開發(fā)流程
  • 云南建設(shè)廳和網(wǎng)站搜索引擎優(yōu)化的目標
  • 網(wǎng)站優(yōu)化報價單百度貼吧熱線客服24小時
  • 網(wǎng)站服務(wù)器 試用免費手機網(wǎng)站建站平臺
  • 商城推廣方案朝陽區(qū)seo搜索引擎優(yōu)化介紹
  • 華容縣住房和城鄉(xiāng)建設(shè)局網(wǎng)站佛山網(wǎng)站建設(shè)制作
  • 一個ip做幾個網(wǎng)站嗎廈門seo顧問屈興東
  • 嘉興網(wǎng)站建設(shè)推廣app賺傭金平臺有哪些
  • 濟南天橋區(qū)做網(wǎng)站公司百度網(wǎng)盤pc端網(wǎng)頁版
  • wordpress建立購物網(wǎng)站軟文寫作的基本要求
  • 電話銷售網(wǎng)站建設(shè)多少錢一個月淘寶關(guān)鍵詞指數(shù)
  • 如何用iis部署網(wǎng)站網(wǎng)絡(luò)游戲推廣公司
  • 桂林北京網(wǎng)站建設(shè)國際新聞最新消息今天軍事新聞
  • 臨沂網(wǎng)站建設(shè)培訓服務(wù)營銷的七個要素
  • 網(wǎng)站做微信登錄微信引流被加軟件
  • 怎么知道網(wǎng)站是什么開源做的提交網(wǎng)站收錄入口
  • 請seo的人幫做網(wǎng)站排名搜索引擎內(nèi)部優(yōu)化
  • 網(wǎng)站建設(shè)教程賺找湖南嵐鴻認 可抖音seo點擊軟件排名
  • 濟南 論壇網(wǎng)站建設(shè)seo優(yōu)化廣告