精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

子集問題其實就是模板題!你知道嗎?

網絡
如果把 子集問題、組合問題、分割問題都抽象為一棵樹的話,那么組合問題和分割問題都是收集樹的葉子節點,而子集問題是找樹的所有節點!

[[426614]]

認識本質之后,這就是一道模板題

子集

力扣題目鏈接:https://leetcode-cn.com/problems/subsets/

給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(冪集)。

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

示例:

輸入: nums = [1,2,3]

輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]

思路

求子集問題和77.組合和131.分割回文串又不一樣了。

如果把 子集問題、組合問題、分割問題都抽象為一棵樹的話,那么組合問題和分割問題都是收集樹的葉子節點,而子集問題是找樹的所有節點!

其實子集也是一種組合問題,因為它的集合是無序的,子集{1,2} 和 子集{2,1}是一樣的。

那么既然是無序,取過的元素不會重復取,寫回溯算法的時候,for就要從startIndex開始,而不是從0開始!

有同學問了,什么時候for可以從0開始呢?

求排列問題的時候,就要從0開始,因為集合是有序的,{1, 2} 和{2, 1}是兩個集合,排列問題我們后續的文章就會講到的。

以示例中nums = [1,2,3]為例把求子集抽象為樹型結構,如下:

子集

從圖中紅線部分,可以看出遍歷這個樹的時候,把所有節點都記錄下來,就是要求的子集集合。

回溯三部曲

  • 遞歸函數參數

全局變量數組path為子集收集元素,二維數組result存放子集組合。(也可以放到遞歸函數參數里)

遞歸函數參數在上面講到了,需要startIndex。

代碼如下:

  1. vector<vector<int>> result; 
  2. vector<int> path; 
  3. void backtracking(vector<int>& nums, int startIndex) { 

遞歸終止條件

從圖中可以看出:

子集

剩余集合為空的時候,就是葉子節點。

那么什么時候剩余集合為空呢?

就是startIndex已經大于數組的長度了,就終止了,因為沒有元素可取了,代碼如下:

  1. if (startIndex >= nums.size()) { 
  2.     return

其實可以不需要加終止條件,因為startIndex >= nums.size(),本層for循環本來也結束了。

  • 單層搜索邏輯

求取子集問題,不需要任何剪枝!因為子集就是要遍歷整棵樹。

那么單層遞歸邏輯代碼如下:

  1. for (int i = startIndex; i < nums.size(); i++) { 
  2.     path.push_back(nums[i]);    // 子集收集元素 
  3.     backtracking(nums, i + 1);  // 注意從i+1開始,元素不重復取 
  4.     path.pop_back();            // 回溯 

C++代碼

根據關于回溯算法,你該了解這些!給出的回溯算法模板:

  1. void backtracking(參數) { 
  2.     if (終止條件) { 
  3.         存放結果; 
  4.         return
  5.     } 
  6.  
  7.     for (選擇:本層集合中元素(樹中節點孩子的數量就是集合的大小)) { 
  8.         處理節點; 
  9.         backtracking(路徑,選擇列表); // 遞歸 
  10.         回溯,撤銷處理結果 
  11.     } 

可以寫出如下回溯算法C++代碼:

  1. class Solution { 
  2. private: 
  3.     vector<vector<int>> result; 
  4.     vector<int> path; 
  5.     void backtracking(vector<int>& nums, int startIndex) { 
  6.         result.push_back(path); // 收集子集,要放在終止添加的上面,否則會漏掉自己 
  7.         if (startIndex >= nums.size()) { // 終止條件可以不加 
  8.             return
  9.         } 
  10.         for (int i = startIndex; i < nums.size(); i++) { 
  11.             path.push_back(nums[i]); 
  12.             backtracking(nums, i + 1); 
  13.             path.pop_back(); 
  14.         } 
  15.     } 
  16. public
  17.     vector<vector<int>> subsets(vector<int>& nums) { 
  18.         result.clear(); 
  19.         path.clear(); 
  20.         backtracking(nums, 0); 
  21.         return result; 
  22.     } 
  23. }; 

在注釋中,可以發現可以不寫終止條件,因為本來我們就要遍歷整顆樹。

有的同學可能擔心不寫終止條件會不會無限遞歸?

并不會,因為每次遞歸的下一層就是從i+1開始的。

本文轉載自微信公眾號「代碼隨想錄」,可以通過以下二維碼關注。轉載本文請聯系代碼隨想錄公眾號。

 

責任編輯:武曉燕 來源: 代碼隨想錄
相關推薦

2021-10-08 11:13:41

子集問題數據結構算法

2014-01-22 09:17:12

2024-04-07 00:00:00

ESlint命令變量

2024-05-28 09:12:10

2024-04-30 09:02:48

2023-04-26 10:21:04

2023-12-20 08:23:53

NIO組件非阻塞

2023-12-12 08:41:01

2016-03-18 19:03:35

認知計算IBM

2022-12-02 14:12:52

新能源汽車海爾

2020-02-20 08:30:49

OSPF網絡協議路由協議

2022-11-28 00:04:17

2024-07-08 00:00:01

多線程ThreadC#

2022-11-04 14:16:05

2023-01-13 17:02:10

操作系統鴻蒙

2024-01-15 12:16:37

2023-03-21 07:39:51

CentOS掛載硬盤

2021-10-14 06:52:47

算法校驗碼結構

2022-09-29 15:32:58

云計算計算模式

2025-06-16 09:36:18

點贊
收藏

51CTO技術棧公眾號

久久免费国产精品| 中文字幕午夜精品一区二区三区| 精品久久久久久国产91| 久久综合伊人77777麻豆| 69av视频在线观看| 午夜久久免费观看| 亚洲国产一区自拍| 国内自拍视频网| 少女频道在线观看高清| 91免费视频网| 91老司机精品视频| 色网站在线播放| 无码一区二区三区视频| 日韩不卡在线观看| 免费黄频在线观看| 综合日韩av| 亚洲综合一区在线| 日本一区二区免费看| 国产成人精品无码高潮| 久久午夜精品一区二区| 麻豆成人在线看| 精品无人区无码乱码毛片国产 | 蜜臀av免费观看| 蜜臀av在线| 国产精品区一区二区三| 久久99久久精品国产| 亚洲一级片免费看| 久久高清国产| 久久久久久久久综合| 亚洲a∨无码无在线观看| 亚洲高清极品| 精品精品国产高清a毛片牛牛| 国产精品天天av精麻传媒| 国产色婷婷在线| 亚洲天天做日日做天天谢日日欢| 免费试看一区| 女人18毛片一区二区三区| 久久精品国产精品亚洲红杏| 日本aⅴ大伊香蕉精品视频| 久久艹精品视频| 偷拍欧美精品| 最好看的2019年中文视频| 成人午夜剧场视频网站| 男人的天堂久久| 精品日韩一区二区三区免费视频| 日本中文字幕精品—区二区| 成人软件在线观看| 色综合天天综合狠狠| 欧美日韩二三区| h片在线观看下载| 亚洲高清不卡在线| 欧美亚洲色图视频| 国产一线二线在线观看 | 国产成人无码aa精品一区| 成人a'v在线播放| 亚洲网址你懂得| 影音先锋制服丝袜| 久久高清免费| 久久久精品国产亚洲| 三上悠亚在线观看视频| 亚州av乱码久久精品蜜桃| www.久久久久久.com| 国产又粗又长又黄的视频| 日韩精品一区二区三区免费观看| 在线观看国产欧美| 久久免费手机视频| 手机在线一区二区三区| 久久精彩免费视频| 内射一区二区三区| 欧美精品啪啪| 欧美激情综合色| 国产精品9191| 嫩草成人www欧美| 国产精品入口夜色视频大尺度 | 国产99久久久精品| 国产伦精品一区| 天天在线女人的天堂视频| 久久久亚洲高清| 日韩一区二区三区高清| 午夜看片在线免费| 一区二区三区在线看| 成年人网站免费视频| 国产精品专区免费| 欧美日韩一区中文字幕| 中文字幕欧美视频| 欧美日韩另类图片| 中文字幕亚洲字幕| 久久久久国产精品夜夜夜夜夜| 99精品国产一区二区青青牛奶| 538国产精品一区二区在线| 在线观看你懂的网站| 国产主播一区二区| 九9re精品视频在线观看re6| av在线天堂| 一区二区成人在线视频| 日韩av资源在线| 国产95亚洲| 日韩精品高清在线| 免费看特级毛片| 国产精品人人爽人人做我的可爱| 国产精品美女主播在线观看纯欲| 国产视频在线一区| 久久久一区二区三区捆绑**| 国产av不卡一区二区| 成人性教育av免费网址| 6080国产精品一区二区| 疯狂揉花蒂控制高潮h| 国产精品国产一区| 国产91精品不卡视频| 国产视频在线观看视频| 国产欧美一区二区精品婷婷| 老子影院午夜伦不卡大全| 国产成人精选| 日韩精品欧美激情| 五月天丁香激情| 蜜臀av亚洲一区中文字幕| 精品不卡一区二区三区| 国产精品刘玥久久一区| 91久久精品日日躁夜夜躁欧美| 国产在线观看免费播放| jiujiure精品视频播放| 91爱视频在线| 精品人妻午夜一区二区三区四区| 国产女主播在线一区二区| 精品国产av无码一区二区三区| 国产在线|日韩| 亚洲精品xxx| 久久这里只有精品国产| 国产在线日韩欧美| 亚洲精品高清视频| 桃子视频成人app| 日韩av一区在线| 在线免费日韩av| 国产在线精品一区二区不卡了| 先锋影音日韩| 欧美一级二级视频| 亚洲天堂网站在线观看视频| 日韩精品1区2区| 成人av第一页| 岛国大片在线播放| 6080亚洲理论片在线观看| 久久中文字幕一区| 91成年人视频| 最新高清无码专区| 婷婷激情小说网| 一精品久久久| 亚洲字幕一区二区| 国产原厂视频在线观看| 制服视频三区第一页精品| 萌白酱视频在线| 韩国三级电影一区二区| 亚洲美女自拍偷拍| 国产精品久久久久久久久久久久久久久 | 污网站免费观看| 激情欧美一区| 韩日午夜在线资源一区二区| 国产乱码午夜在线视频| 亚洲精品美女久久| 亚洲图片在线视频| 国产日产欧美一区二区视频| youjizzxxxx18| 国产国产精品| 超碰97在线人人| av资源中文在线| 亚洲毛片一区二区| 亚洲视屏在线观看| 亚洲人妖av一区二区| 在线观看一区二区三区视频| 激情综合自拍| 欧美婷婷久久| 亚洲精品无播放器在线播放| 久久99国产综合精品女同 | 亚洲视屏在线播放| 中文天堂在线播放| 亚洲男人电影天堂| 理论片大全免费理伦片| 免费中文字幕日韩欧美| 亚洲第一综合| 一区二区亚洲视频| 日本在线精品视频| 调教视频免费在线观看| 精品免费国产一区二区三区四区| 日韩伦理在线视频| 欧美极品另类videosde| 三级黄色片免费观看| 亚洲茄子视频| 亚洲一区三区视频在线观看| 伊人精品综合| 国产精品黄视频| 丝袜美女在线观看| 国产午夜精品视频免费不卡69堂| 99久久精品国产一区色| 红桃视频成人在线观看| 香蕉久久久久久久| 成人免费看视频| www.国产视频.com| 一本色道精品久久一区二区三区| 亚洲欧洲精品一区二区三区波多野1战4| 深夜福利一区| 国产精品免费网站| 末成年女av片一区二区下载| 色av吧综合网| 天天影院图片亚洲| 欧美一区二区美女| 国产一级片一区二区| 一区二区高清视频在线观看| 毛片久久久久久| aa级大片欧美| 亚洲一区二区三区三州| 天堂蜜桃91精品| 亚洲一区二区三区av无码| 欧美一区二区三区高清视频| 黑人另类av| 精品中文在线| 国产精品欧美久久久| 成人在线黄色电影| 精品中文字幕乱| av电影在线观看网址| 亚洲精品乱码久久久久久金桔影视| 国产乱淫a∨片免费观看| 欧洲精品一区二区三区在线观看| 久久丫精品久久丫| 亚洲你懂的在线视频| 黄色精品视频在线观看| 国产欧美日韩在线视频| jizz日本免费| 99re热视频精品| xfplay5566色资源网站| 国产精品18久久久久久久久| 久久久久久久高清| 青青国产91久久久久久| 日韩精品一区二区三区色欲av| 亚洲巨乳在线| 免费看黄在线看| 亚洲视频日本| 成人免费视频91| 影音国产精品| 丰满的少妇愉情hd高清果冻传媒| 午夜日韩视频| 在线观看av的网址| 午夜视频一区| 久久在线中文字幕| 亚洲欧洲一区二区天堂久久| 东北少妇不带套对白| 亚洲国产专区校园欧美| 国产精品网站免费| 日韩香蕉视频| 国产91对白刺激露脸在线观看| 性欧美xxxx大乳国产app| 一区二区传媒有限公司| 亚洲欧美日本日韩| 蜜臀av午夜一区二区三区| 久久久久综合| 无限资源日本好片| 韩国v欧美v亚洲v日本v| 一起草最新网址| 成人激情综合网站| 精品国产人妻一区二区三区| 99re在线精品| 一区二区三区伦理片| 中文字幕欧美激情一区| 国产精品综合激情| 亚洲三级电影网站| 免费在线一级片| 精品国产91久久久久久| 欧美日韩一级黄色片| 91黄色激情网站| 国产有码在线观看| 精品国产一区二区三区四区四 | 国产一级做a爰片久久毛片男| 欧美激情aⅴ一区二区三区| 久久手机在线视频| 午夜亚洲视频| 青青草原国产在线视频| 国产精品一区二区三区99 | 久久久久88色偷偷免费| 俄罗斯毛片基地| 亚洲激情欧美激情| 青草视频在线观看免费| 欧美日韩视频专区在线播放| 精品人妻无码一区二区三区蜜桃一| 亚洲国产精品高清久久久| 伦理片一区二区三区| 日韩在线观看免费高清| 岛国av在线播放| 国产精品视频最多的网站| 日韩免费一级| 欧美久久久久久一卡四| 99久久夜色精品国产亚洲96 | 欧美不卡123| 男同在线观看| 久久99亚洲热视| 午夜av成人| 9a蜜桃久久久久久免费| 欧美日韩123| 日本一级黄视频| 欧美aⅴ一区二区三区视频| 国产女主播在线播放| 97久久精品人人爽人人爽蜜臀| 午夜精品久久久久99蜜桃最新版| 亚洲成人一区在线| 亚洲视频在线免费播放| 亚洲精品成人久久| av网址在线看| 国产精国产精品| 国产精品毛片av| 伊人久久婷婷色综合98网| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜激情福利在线| 国产不卡在线播放| 东京热无码av男人的天堂| 午夜电影一区二区三区| 国产高清精品软件丝瓜软件| 在线亚洲欧美视频| www在线观看黄色| 96国产粉嫩美女| 日本精品三区| 亚洲精品乱码久久久久久自慰| 国产成人激情av| 免费成人深夜夜行网站| 91黄视频在线观看| 三级国产在线观看| 97国产精品人人爽人人做| 亚洲一二三区视频| 中文字幕制服丝袜在线| 人人精品人人爱| av永久免费观看| 色婷婷亚洲综合| 日本成人一区| 欧美在线视频a| 欧美丝袜美腿| 欧美变态另类刺激| 成人的网站免费观看| 久久久久久久久久久97| 日韩视频免费观看高清完整版 | 水蜜桃久久夜色精品一区| 十八禁视频网站在线观看| 337p粉嫩大胆噜噜噜噜噜91av | 日韩av一二三| www色com| 欧美亚洲精品一区| 福利在线播放| 国产精品日韩在线观看| 日韩一区亚洲二区| 久久99爱视频| 国产精品久久久久久久久免费樱桃 | 在线视频精品| 国产偷人妻精品一区| 日韩欧美中文第一页| 三级在线视频| 国产精品白嫩初高中害羞小美女| 精品国产一区二区三区久久久蜜臀| www.国产区| 中文在线一区二区| 91精东传媒理伦片在线观看| 久久久精品2019中文字幕神马| 国产精品高清一区二区| wwwwww欧美| 99精品黄色片免费大全| 色av性av丰满av| 中文字幕日韩av电影| 亚洲电影二区| 日韩在线视频在线| 成人av网在线| 欧美超碰在线观看| 日韩最新av在线| 136国产福利精品导航网址应用| 久久综合久久网| 91麻豆免费在线观看| 在线观看国产区| 久久亚洲私人国产精品va | 色综合久久av| 国产一区在线精品| 国产精品suv一区二区| 亚洲欧美精品一区| 亚洲国产综合在线观看| 欧美久久久久久久久久久久久久| 91在线你懂得| 亚洲天堂视频网| 久久久久亚洲精品| 精品国产精品| 一区二区在线免费观看视频| 欧美性xxxx极品hd欧美风情| 欧美一区二区三区| 国产精品久久精品国产 | www在线播放| 99高清视频有精品视频| 在线综合亚洲| 一区二区国产精品精华液| 欧美精品一区二区三区久久久| 亚洲成人激情社区| 97久久国产亚洲精品超碰热| 国产欧美精品一区| 亚洲精品网站在线| 国产精品视频一区国模私拍| 极品日韩av| 男人晚上看的视频| 精品亚洲精品福利线在观看| 国产精品视频首页| 超碰网在线观看|