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

排列問題也要去重了!

開發 前端
如果對回溯算法基礎還不了解的話,我還特意錄制了一期視頻:帶你學透回溯算法(理論篇) 可以結合題解和視頻一起看,希望對大家理解回溯算法有所幫助。

[[428322]]

全排列 II

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

給定一個可包含重復數字的序列 nums ,按任意順序 返回所有不重復的全排列。

示例 1:

  • 輸入:nums = [1,1,2]
  • 輸出:[[1,1,2], [1,2,1], [2,1,1]]

示例 2:

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

提示:

  • 1 <= nums.length <= 8
  • -10 <= nums[i] <= 10

思路

如果對回溯算法基礎還不了解的話,我還特意錄制了一期視頻:帶你學透回溯算法(理論篇) 可以結合題解和視頻一起看,希望對大家理解回溯算法有所幫助。

這道題目和全排列的區別在與給定一個可包含重復數字的序列,要返回所有不重復的全排列。

這里又涉及到去重了。

在組合總和II 、子集II我們分別詳細講解了組合問題和子集問題如何去重。

那么排列問題其實也是一樣的套路。

還要強調的是去重一定要對元素經行排序,這樣我們才方便通過相鄰的節點來判斷是否重復使用了。

我以示例中的 [1,1,2]為例 (為了方便舉例,已經排序)抽象為一棵樹,去重過程如圖:

全排列II1

圖中我們對同一樹層,前一位(也就是nums[i-1])如果使用過,那么就進行去重。

一般來說:組合問題和排列問題是在樹形結構的葉子節點上收集結果,而子集問題就是取樹上所有節點的結果。

在46.全排列中已經詳解講解了排列問題的寫法,在40.組合總和II 、90.子集II中詳細講解的去重的寫法,所以這次我就不用回溯三部曲分析了,直接給出代碼,如下:

C++代碼

  1. class Solution { 
  2. private: 
  3.     vector<vector<int>> result; 
  4.     vector<int> path; 
  5.     void backtracking (vector<int>& nums, vector<bool>& used) { 
  6.         // 此時說明找到了一組 
  7.         if (path.size() == nums.size()) { 
  8.             result.push_back(path); 
  9.             return
  10.         } 
  11.         for (int i = 0; i < nums.size(); i++) { 
  12.             // used[i - 1] == true,說明同一樹支nums[i - 1]使用過 
  13.             // used[i - 1] == false,說明同一樹層nums[i - 1]使用過 
  14.             // 如果同一樹層nums[i - 1]使用過則直接跳過 
  15.             if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { 
  16.                 continue
  17.             } 
  18.             if (used[i] == false) { 
  19.                 used[i] = true
  20.                 path.push_back(nums[i]); 
  21.                 backtracking(nums, used); 
  22.                 path.pop_back(); 
  23.                 used[i] = false
  24.             } 
  25.         } 
  26.     } 
  27. public
  28.     vector<vector<int>> permuteUnique(vector<int>& nums) { 
  29.         result.clear(); 
  30.         path.clear(); 
  31.         sort(nums.begin(), nums.end()); // 排序 
  32.         vector<bool> used(nums.size(), false); 
  33.         backtracking(nums, used); 
  34.         return result; 
  35.     } 
  36. }; 

拓展

大家發現,去重最為關鍵的代碼為:

  1. if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { 
  2.     continue

如果改成 used[i - 1] == true, 也是正確的!,去重代碼如下:

  1. if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == true) { 
  2.     continue

這是為什么呢,就是上面我剛說的,如果要對樹層中前一位去重,就用used[i - 1] == false,如果要對樹枝前一位去重用used[i - 1] == true。

對于排列問題,樹層上去重和樹枝上去重,都是可以的,但是樹層上去重效率更高!

這么說是不是有點抽象?

來來來,我就用輸入: [1,1,1] 來舉一個例子。

樹層上去重(used[i - 1] == false),的樹形結構如下:

全排列II2

樹枝上去重(used[i - 1] == true)的樹型結構如下:

全排列II

大家應該很清晰的看到,樹層上對前一位去重非常徹底,效率很高,樹枝上對前一位去重雖然最后可以得到答案,但是做了很多無用搜索。

總結

這道題其實還是用了我們之前講過的去重思路,但有意思的是,去重的代碼中,這么寫:

  1. if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { 
  2.     continue

和這么寫:

  1. if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == true) { 
  2.     continue

都是可以的,這也是很多同學做這道題目困惑的地方,知道used[i - 1] == false也行而used[i - 1] == true也行,但是就想不明白為啥。

所以我通過舉[1,1,1]的例子,把這兩個去重的邏輯分別抽象成樹形結構,大家可以一目了然:為什么兩種寫法都可以以及哪一種效率更高!

是不是豁然開朗了!!

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

 

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

2021-10-08 11:13:41

子集問題數據結構算法

2020-07-24 10:11:19

AI 數據人工智能

2021-12-29 06:24:16

AI審稿人工智能

2022-05-05 09:23:21

裁員程序員危機

2021-09-29 07:41:27

前端技術編程

2021-11-19 07:54:40

前端

2019-11-14 22:04:09

AIJohn CarmacVR

2019-04-16 14:12:29

AI機器學習TensorFlow

2010-05-11 11:04:11

曹重英

2023-02-09 15:30:35

特斯拉AI

2014-12-17 09:57:39

2020-12-09 15:26:00

人工智能律師互聯網

2024-08-30 08:15:59

VueAI工具

2021-11-09 11:56:25

模式數組排序

2015-05-27 10:11:04

4G

2009-10-16 13:04:18

網絡綜合布線

2017-05-31 13:40:22

人工智能個人助手算法分析

2025-09-17 09:06:00

2025-06-03 01:00:00

宇樹合作伙伴資本市場

2016-08-04 14:49:38

點贊
收藏

51CTO技術棧公眾號

日产精品一线二线三线芒果| 欧美综合激情网| 天天久久综合网| 男女羞羞视频在线观看| 99久久精品国产毛片| 日韩av电影手机在线| 四虎永久免费地址| 国产精品网站在线看| 在线免费观看日本欧美| 小泽玛利亚av在线| 日本中文字幕电影在线观看 | 性一交一乱一精一晶| 国产欧美短视频| 日韩有码片在线观看| 艳妇乳肉豪妇荡乳xxx| 视频精品导航| 精品久久久久久久久久久久久| 色噜噜色狠狠狠狠狠综合色一| 亚洲第一大网站| 美女脱光内衣内裤视频久久影院| 午夜精品99久久免费| 国产又粗又硬视频| 女仆av观看一区| 欧美一区二区三区的| 国产成人综合一区| 91黄页在线观看| 亚洲婷婷综合久久一本伊一区| 久99久在线| 999精品国产| 青娱乐精品视频在线| 98精品国产自产在线观看| 国产天堂av在线| 日本不卡免费一区| 亚洲欧美在线x视频| wwwxx日本| 玖玖玖视频精品| 欧美日韩精品一二三区| 成人观看免费完整观看| 日本大片在线播放| 亚洲欧美日韩在线| 亚洲高清视频在线观看| 电影av一区| 国产日韩欧美高清在线| 欧美精品在线一区| 亚洲av片一区二区三区| 99久久久精品| 久久99精品久久久久久久久久 | 亚洲精品自拍视频| 波多野结衣办公室双飞 | 欧美aⅴ一区二区三区视频| 欧美在线免费看| 成人精品免费在线观看| 99在线热播精品免费99热| 国模精品系列视频| 日韩精品在线免费看| 亚洲精品免费观看| 久久久久中文字幕2018| 久久精品视频国产| 亚洲日本激情| 欧美性受xxx| 亚洲天堂一区在线| 久久国产精品久久w女人spa| 88xx成人精品| 天堂中文在线网| 久久国产精品99国产| 国产精品美女久久久久久免费| 丰满人妻一区二区三区四区| 视频精品一区二区| 国产欧美日韩免费| 国产免费黄色网址| 福利电影一区二区| 精品欧美国产| 国产69精品久久app免费版| 国产精品美女久久久久久| av动漫免费观看| 在线免费观看a视频| 亚洲一卡二卡三卡四卡无卡久久| 国产一区二区视频播放| 欧美人体一区二区三区| 欧美精品视频www在线观看| 午夜一级免费视频| 国产日韩三级| 亚洲一区二区福利| 国产美女福利视频| 在线看片一区| 国产精品美女久久| 亚洲黄色片视频| 久久久久久久久久久久久久久99 | 91在线|亚洲| 欧美 日韩 人妻 高清 中文| 国产欧美日韩卡一| 日本中文字幕一级片| 自拍网站在线观看| 91精品国产综合久久福利软件| 日韩少妇一区二区| 成人午夜国产| 午夜精品一区二区三区在线视| 激情五月婷婷网| 国产成人午夜片在线观看高清观看| 久久99精品国产一区二区三区| 老司机在线永久免费观看| 亚洲成人av电影| 亚洲精品www.| 伊人久久大香线蕉综合网站 | 深夜福利成人| xxxx成人| 91精品国产麻豆| 欧美18—19性高清hd4k| 亚洲午夜伦理| 国产成人精品综合| 成人久久久精品国产乱码一区二区| 中文字幕欧美区| 国产午夜大地久久| 日韩欧美中文在线观看| 在线观看中文字幕亚洲| 五月天综合激情| 成人午夜视频在线| 综合视频免费看| 亚洲第一二三四区| 亚洲精品视频免费| 亚洲一区 视频| 国产精品一区二区三区99 | 综合久久综合| 国产日韩欧美另类| 国产日韩精品在线看| 亚洲mv在线观看| 4438x全国最大成人| 久久中文字幕av| 国产极品精品在线观看| 午夜小视频在线播放| 亚洲成人手机在线| 18禁一区二区三区| 中文字幕一区二区三区乱码图片| 国产精品欧美日韩久久| 日韩av高清在线| 欧美日韩激情小视频| 中文字幕乱码一区| 99视频在线精品国自产拍免费观看| av一区二区三区在线观看| 成人在线免费看黄| 91精品国产乱码久久蜜臀| 神马午夜精品91| 国内精品写真在线观看| 亚洲一区二区在线看| 欧美一级做一级爱a做片性| 这里只有精品在线播放| 一本一道精品欧美中文字幕| 中文字幕乱码日本亚洲一区二区| 国产一二三四在线视频| 精品久久一区| 91精品国产自产在线观看永久| 婷婷在线视频观看| 7777女厕盗摄久久久| 日本爱爱小视频| 国产精品一二三在| 久久久久久久9| 精品资源在线| 国产成人av网| 2021av在线| 日韩一区二区三区在线观看| 激情四射综合网| www.日韩在线| 国产视频一区二区三区在线播放 | 亚洲最新在线视频| 中文字幕在线观看视频一区| 国产精品久久久久久妇女6080| 亚洲欧美手机在线| 在线成人www免费观看视频| 久久久久se| 日韩三区免费| 久久久精品免费视频| 亚洲黄色在线播放| 日本道色综合久久| 国产极品国产极品| 99久久夜色精品国产网站| 妺妺窝人体色www在线观看| 亚洲激情五月| 久久99精品久久久久久水蜜桃 | 亚洲毛片一区| 亚洲欧美在线网| 深夜激情久久| 日本精品视频在线| 成人免费视屏| 日韩av在线免费观看| 瑟瑟视频在线免费观看| 一区二区三区高清在线| 99久久久无码国产精品性| 久久99国产精品麻豆| 成人午夜视频在线观看免费| 国内精品久久久久久99蜜桃| 亚洲精品日产aⅴ| 欧美电影免费观看| 欧美美最猛性xxxxxx| 日本一级在线观看| 日韩精品一区二区三区视频播放| 日韩不卡在线播放| 亚洲综合另类小说| 欧洲美熟女乱又伦| av综合在线播放| 中文字幕国产高清| 久久久久久久波多野高潮日日| 精品国产一区二区三区在线| 久久99国产精一区二区三区| 亚洲最大成人免费视频| **欧美日韩在线观看| 国内外成人免费激情在线视频网站| 成全电影播放在线观看国语| 日韩hd视频在线观看| 国产视频在线观看免费| 色视频成人在线观看免| 欧美成人aaaaⅴ片在线看| 国产精品成人免费| 91网站免费入口| 成人黄色网址在线观看| 日韩欧美中文视频| 男女男精品网站| 成人黄色片视频| 99精品视频免费全部在线| 日本精品福利视频| 羞羞色午夜精品一区二区三区| 日本在线高清视频一区| 欧美大片网址| 国产在线精品一区二区三区》| 2020国产精品小视频| 国产精品免费一区| 国产精品av一区二区三区| 午夜精品久久17c| 久久99亚洲网美利坚合众国| 日韩中文字幕在线视频播放| 成人av一区| 亚洲偷熟乱区亚洲香蕉av| 五月婷婷丁香网| 精品国产一区二区三区久久久蜜月 | 韩国av网站在线| 中文字幕在线精品| 99re在线视频| 日韩在线观看网址| 欧美性videos| 日韩一中文字幕| 国产调教视频在线观看| 久久亚洲精品视频| 1区2区在线观看| 久99久在线视频| 天使と恶魔の榨精在线播放| 欧美日本国产在线| 成年人视频免费在线播放| 高清视频欧美一级| 欧美a级在线观看| 日本成人激情视频| 欧美动物xxx| 国产精品黄色av| 国内精品伊人| 91香蕉国产在线观看| 精品视频一区二区三区| 粉嫩精品一区二区三区在线观看| 8848成人影院| 国内一区二区在线视频观看 | 亚洲视频电影图片偷拍一区| 国产女主播在线写真| 中文字幕久久亚洲| 精品美女在线观看视频在线观看| 久久亚洲精品一区| 国产又色又爽又黄刺激在线视频| 欧美激情在线播放| 欧美18av| 国产区精品在线观看| 天堂va欧美ⅴa亚洲va一国产| 国产91视觉| 神马影视一区二区| 激情五月五月婷婷| 国产日韩综合| 国产小视频精品| 国产精品香蕉一区二区三区| 成人无码www在线看免费| 国产精品网站在线| 91aaa在线观看| 日韩欧美一区二区在线| 国产老妇伦国产熟女老妇视频| 欧美不卡一区二区三区四区| 男女网站在线观看| 欧美大胆a视频| 成人美女大片| 成人在线观看视频网站| 欧美美女啪啪| 欧美性视频在线播放| 国产精品一区毛片| 黄色小视频免费网站| 不卡欧美aaaaa| 少妇高潮在线观看| 亚洲成人免费观看| 中文字幕乱码视频| 亚洲国产精品va在线看黑人动漫| yw在线观看| 97精品国产97久久久久久| 国产欧美在线观看免费| 久久av一区二区| 欧美丰满日韩| 日韩一级完整毛片| 国产日产精品一区二区三区| 欧美精选午夜久久久乱码6080| 人人妻人人澡人人爽久久av| 这里只有精品视频在线| 激情视频网站在线播放色| 91性高湖久久久久久久久_久久99| 欧美日韩破处| 成人午夜免费剧场| 日韩av一级片| 亚洲精品乱码久久久久久不卡| **欧美大码日韩| 国产农村妇女aaaaa视频| 日韩欧美中文字幕精品| 国产69久久| 日本成人黄色片| 欧美一区 二区| 青青青青在线视频| 国产一区二区中文字幕| 国产第一页精品| 欧美性xxxxx极品娇小| 亚洲黄色a级片| 欧美老少配视频| 96视频在线观看欧美| 日韩av高清| 欧美一级视频| 中国极品少妇videossexhd| 亚洲精品日日夜夜| 国产精品久久777777换脸| 在线精品播放av| 新片速递亚洲合集欧美合集| 久久久久久久有限公司| 激情久久久久| 色哟哟网站在线观看| 亚洲精品v日韩精品| 国产理论视频在线观看| 久久久av一区| 北岛玲精品视频在线观看| 亚洲欧洲精品一区二区三区波多野1战4| 翔田千里一区二区| 少妇户外露出[11p]| 午夜伦理一区二区| 人妻少妇精品无码专区| 久久久天堂国产精品女人| 草草视频在线一区二区| 日韩精品在线中文字幕| 成人国产精品免费观看视频| 黄色激情视频在线观看| 亚洲精品99久久久久| 欧美xxxhd| 欧美精品国产精品久久久| 久久久久久穴| 国产又黄又粗视频| 欧美午夜精品一区| 欧美性天天影视| 99在线热播| 伊人精品视频| 三上悠亚ssⅰn939无码播放| 91成人免费网站| 黄色小网站在线观看| 97中文在线观看| 91久久午夜| 少妇大叫太粗太大爽一区二区| 色婷婷av一区二区三区gif| 岛国在线视频| 成人免费自拍视频| 狠狠色狠狠色综合日日tαg| 亚洲制服丝袜在线播放| 91久久香蕉国产日韩欧美9色| 中文字幕在线视频区| 91亚洲精品在线| 在线观看视频免费一区二区三区| 亚洲午夜久久久久久久久红桃| 91国产免费看| 超碰在线免费公开| 久久综合伊人77777麻豆| 日本aⅴ免费视频一区二区三区| 亚洲熟女毛茸茸| 亚洲国产精品小视频| 国产欧美自拍| 99在线精品免费视频| 国产视频一区二区三区在线观看| 国产精品久久综合青草亚洲AV| 欧美激情欧美狂野欧美精品| 九九久久成人| 性生活一级大片| 色偷偷一区二区三区| 国产三区视频在线观看| 麻豆av一区二区三区久久| 久久精品国产亚洲aⅴ| 日本免费在线播放| 少妇高潮久久久久久潘金莲| 岛国成人av| av亚洲天堂网| 五月天视频一区| 成人毛片av在线| 日韩精品久久一区| 粉嫩嫩av羞羞动漫久久久| 中文字幕91爱爱| 欧美国产日韩一区二区在线观看 | 亚洲一区二区三区欧美| 99re这里只有精品首页| 99久久精品国产一区色|