精品欧美一区二区三区在线观看 _久久久久国色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免费在线| 91嫩草|国产丨精品入口| 久久综合社区| 欧美巨大另类极品videosbest| 国产91在线亚洲| 欧美日韩国产综合视频 | 欧美在线免费视频| 日韩欧美视频免费观看| 国产亚洲成av人片在线观黄桃| 在线观看日韩毛片| 日韩欧美精品免费| eeuss影院www在线播放| 91在线丨porny丨国产| 91免费在线视频网站| 天天综合网入口| 综合一区av| 正在播放欧美一区| 精品国产av色一区二区深夜久久 | 97免费高清电视剧观看| 亚洲国产无线乱码在线观看| 亚洲九九精品| 不卡毛片在线看| 日本一卡二卡在线播放| 欧美日韩一区二区三区四区不卡 | 亚洲午夜久久久久久久久久久| 日本不卡高清视频一区| 日本国产在线观看| 国产一区欧美一区| 国产日韩欧美在线观看| 中文字幕在线日本| 亚洲一区网站| 91禁外国网站| 激情综合网五月婷婷| 亚洲一区二区日韩| 久久精品人人爽| 2014亚洲天堂| 日韩精品一区二区三区免费观影| 亚洲久久久久久久久久| 99精品一区二区三区无码吞精| 精品视频在线播放一区二区三区| 欧美日韩国产色站一区二区三区| 91日韩视频在线观看| 美女福利一区二区 | 亚洲免费视频二区| 三级欧美在线一区| 日本久久91av| 91青青草视频| 蜜臀国产一区二区三区在线播放| 日本亚洲欧美三级| 69xxxx国产| 日韩电影在线免费观看| 国产精品久久久av| 亚洲午夜激情视频| 美女在线一区二区| 91精品久久久久| 国产剧情精品在线| 国产高清不卡一区二区| 999国产视频| 免费a级片在线观看| 99久久精品国产精品久久 | 四虎成人av| 色婷婷综合久久久久中文字幕1| av免费播放网站| 久久电影院7| 九九精品视频在线| 九九热国产视频| 天堂在线亚洲视频| 国产精品影片在线观看| 国产女18毛片多18精品| 国产成人精品影院| 久久久99爱| 91涩漫在线观看| 亚洲卡通动漫在线| 久久久久久av无码免费网站下载| 久久亚洲资源| 色婷婷一区二区| 天天色天天综合网| xvideos.蜜桃一区二区| 亚洲日本成人女熟在线观看| 成年人看的免费视频| 亚洲精品网址| 国产91成人video| 真实的国产乱xxxx在线91| 国产一区二区看久久| 国产九色91| av网站无病毒在线| 亚洲国产精品久久一线不卡| 成人在线激情网| 清纯唯美激情亚洲| 日韩精品中文字幕在线观看| 亚洲av熟女国产一区二区性色| 一区二区三区国产精华| 4k岛国日韩精品**专区| 国产又黄又猛又爽| 91在线精品一区二区三区| 一区二区三区免费看| 久久大胆人体| 欧美日韩精品一区视频| 日本国产在线视频| 99精品全国免费观看视频软件| 97久久精品在线| 国产精品久久777777换脸| 99热99精品| 欧美一级黄色录像片| 日韩免费电影| 日韩欧美亚洲国产另类| 欧美a在线播放| 亚洲区一区二| 成人综合网网址| 国产永久免费高清在线观看| 亚洲一级不卡视频| 国产三级精品三级在线| 波多野结衣一区| 91国内在线视频| 亚洲免费成人在线| 亚洲天堂精品在线观看| 天天碰免费视频| 偷窥自拍亚洲色图精选| 九九精品在线视频| 国产精品九九九九| 亚洲国产精品ⅴa在线观看| 成人在线免费观看av| 天堂va欧美ⅴa亚洲va一国产| 在线观看欧美日韩| 无码人妻丰满熟妇区bbbbxxxx| av电影在线观看一区| 国产精品久久久影院| 日韩一级特黄| 日韩一区二区久久久| 中文字幕在线天堂| 久久久久久久久蜜桃| 久久久999免费视频| www.豆豆成人网.com| 欧美黑人一区二区三区| 国产免费的av| 亚洲精品高清在线观看| 在线免费观看av网| 97精品中文字幕| 91精品久久久久久久久中文字幕| av在线免费一区| 欧美色中文字幕| 纪美影视在线观看电视版使用方法| 久久av最新网址| 日韩av电影免费在线| 欧美free嫩15| 中文字幕在线看视频国产欧美在线看完整 | www天堂在线| 一区二区理论电影在线观看| 搡的我好爽在线观看免费视频| 91成人影院| 成人激情av| av资源一区| 国产午夜精品理论片a级探花| 免费看毛片网站| 久久婷婷综合激情| 国产一级不卡毛片| 欧美电影免费观看高清| 成人激情黄色网| 手机av免费在线| 亚洲成人网在线| av大片在线免费观看| 久久精品欧美日韩精品| 日本xxxx黄色| 午夜激情一区| 精品伊人久久大线蕉色首页| 日韩国产激情| 久久五月天综合| 人妻偷人精品一区二区三区| 天天色天天爱天天射综合| 法国空姐电影在线观看| 捆绑变态av一区二区三区| 樱空桃在线播放| 女一区二区三区| 国产精品美女免费| 香蕉成人app免费看片| 日韩av有码在线| 在线观看国产一区二区三区| 亚洲欧美乱综合| 真人bbbbbbbbb毛片| 美腿丝袜亚洲三区| 日本a在线免费观看| 精品国精品国产自在久国产应用| 成人在线免费观看视视频| 天堂8中文在线| 亚洲视频视频在线| a视频免费在线观看| 色爱区综合激月婷婷| 欧美三级日本三级| 久久久久久久久久久黄色| 黄色一级片免费播放| 亚洲欧美日韩精品一区二区 | 不卡一区二区三区四区五区| 26uuu亚洲电影| 欧美成人中文字幕| 国产福利第一视频在线播放| 日韩免费电影网站| 真实的国产乱xxxx在线91| 亚洲超碰精品一区二区| jizz日本在线播放| 91色porny蝌蚪| 69久久精品无码一区二区| 久久一二三四| 鲁一鲁一鲁一鲁一色| 91成人网在线观看| 亚洲bbw性色大片| 老汉色老汉首页av亚洲| 91深夜福利视频| julia一区二区三区中文字幕| 久久久噜噜噜久久久| caoporn免费在线视频| 在线日韩日本国产亚洲| 每日更新在线观看av| 337p日本欧洲亚洲大胆精品 | 成人中文字幕在线| 日本黄色福利视频| 日本不卡高清视频| 激情综合在线观看| 99在线观看免费视频精品观看| 51xx午夜影福利| 五月天激情综合网| 偷拍视频一区二区| 美女精品一区最新中文字幕一区二区三区 | 日韩在线观看成人| 99reav在线| 亚洲三级av在线| 香蕉视频成人在线| 亚洲国产欧美一区二区三区同亚洲 | 草美女在线观看| 欧美国产一区二区三区| 26uuu亚洲电影在线观看| 久久这里只有精品99| 91高清在线| 色噜噜亚洲精品中文字幕| 成人免费高清在线播放| 亚洲欧洲高清在线| 男女视频在线观看免费| 精品伊人久久97| 美女做暖暖视频免费在线观看全部网址91| 亚洲福利视频二区| 网站黄在线观看| 日韩国产精品一区| 欧美色18zzzzxxxxx| 亚洲女人天堂色在线7777| 青青青草原在线| 亚洲小视频在线| 国产一级网站视频在线| 尤物九九久久国产精品的分类| 黄色av网址在线免费观看| 亚洲片国产一区一级在线观看| 国产免费av高清在线| 色婷婷av一区二区三区久久| 国内精品不卡| 欧美激情综合亚洲一二区| www.综合| 国产99久久久欧美黑人| 久久99国产精品二区高清软件| 国产视频福利一区| 91国内精品| 精品视频第一区| 国产99久久| 99re99热| 在线精品在线| 亚洲欧美另类动漫| 看片网站欧美日韩| 成人做爰69片免费| 久久这里只有精品首页| 色撸撸在线视频| 一区二区三区中文免费| 色播视频在线播放| 欧美性生活久久| 国产白浆在线观看| 国产视频在线观看一区二区| 尤物网址在线观看| 欧美激情xxxx性bbbb| 日韩电影av| 亚洲一区二区日本| 日韩理论电影中文字幕| 亚洲欧美日韩在线综合 | 久久人人爽人人爽人人片av高清| 高清不卡av| 亚洲综合在线做性| 婷婷精品在线观看| 熟妇熟女乱妇乱女网站| 国产精品久久久亚洲一区| 97人人爽人人| 久久中文字幕电影| 青草草在线视频| 欧美系列一区二区| 黄色av网址在线| 少妇av一区二区三区| 亚洲天堂av在线| 亚洲一区二区在线| 精品国产一区二区三区噜噜噜| 久久www视频| 男女男精品视频网| 国产a级黄色片| 亚洲人成人一区二区在线观看 | 精品欧美国产| 亚洲欧美色图| 免费大片在线观看| 成人夜色视频网站在线观看| 妖精视频在线观看免费 | 国语对白做受69| 粉嫩av国产一区二区三区| 欧美亚洲一级二级| 亚洲激情网址| 日本一级大毛片a一| 国产精品久久久久精k8| 精品黑人一区二区三区| 亚洲国产欧美一区二区三区同亚洲 | 国产精品国产三级国产aⅴ中文 | 天堂8中文在线| 成人综合国产精品| 成人在线免费观看视频| 乱妇乱女熟妇熟女网站| 成人中文字幕电影| 99热精品免费| 在线播放91灌醉迷j高跟美女| 毛片在线免费| 欧美在线激情视频| 日韩欧美在线精品| koreanbj精品视频一区| 国产91对白在线观看九色| 国产1区2区3区4区| 91精品国产一区二区三区蜜臀| 日本网站在线免费观看视频| 国产精品日韩久久久久| 精品产国自在拍| 精品久久久久av| 久久欧美中文字幕| 特级做a爱片免费69| 精品1区2区在线观看| 久久亚洲导航| 精品不卡在线| 香蕉久久夜色精品| 国产精品揄拍100视频| 亚洲综合色自拍一区| 丰满岳乱妇国产精品一区| 欧美成人激情视频免费观看| 精品亚洲二区| 18黄暴禁片在线观看| av亚洲精华国产精华精| 国产区在线观看视频| 亚洲美女中文字幕| av在线日韩| 亚洲一区二区三区午夜| 经典三级在线一区| 国产亚洲成人av| 亚洲国产91色在线| 亚洲欧洲日本韩国| 日本不卡一区二区三区在线观看| 日韩精品一二区| 欧美h片在线观看| 日韩美女一区二区三区| a国产在线视频| 日本一区高清在线视频| 六月婷婷色综合| 久久久香蕉视频| 日韩电视剧免费观看网站| 香蕉成人av| 日本三级福利片| 成人av在线影院| 精品一区二三区| 精品综合久久久久久97| 欧美成人午夜77777| 日本爱爱免费视频| 亚洲日本在线a| 日本韩国在线观看| 国产精品久久久久久网站| 欧美一区成人| 中文字幕 亚洲一区| 欧美色精品在线视频| 精品日韩av| 日韩欧美99| 国产一区二区三区免费播放| 国产精品第72页| 一区二区在线免费视频| 亚洲精品aⅴ| 日本黄网站免费| 亚洲一区二区三区四区的| 你懂的免费在线观看| 91影院在线免费观看视频| 一本一本久久| 黑鬼狂亚洲人videos| 日韩成人av网| 国产在线视频欧美一区| 国模无码视频一区二区三区| 亚洲视频在线一区| 秋霞av在线| av在线不卡观看| 久久国产麻豆精品| 少妇一级淫片免费放中国| www.日韩不卡电影av| 米奇777超碰欧美日韩亚洲|