LeetCode 47.全排列 II

LeetCode 47.全排列 II

1、題目

題目鏈接:47. 全排列 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

2、回溯(未剪枝優化)

思路

代碼

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking (vector<int>& nums, vector<bool>& used) {// 此時說明找到了一組if (path.size() == nums.size()) {result.push_back(path);return;}for (int i = 0; i < nums.size(); i++) {// used[i - 1] == true,說明同一樹枝nums[i - 1]使用過// used[i - 1] == false,說明同一樹層nums[i - 1]使用過// 如果同一樹層nums[i - 1]使用過則直接跳過if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) {continue;}if (used[i] == false) {used[i] = true;path.push_back(nums[i]);backtracking(nums, used);path.pop_back();used[i] = false;}}}
public:vector<vector<int>> permuteUnique(vector<int>& nums) {result.clear();path.clear();sort(nums.begin(), nums.end()); // 排序vector<bool> used(nums.size(), false);backtracking(nums, used);return result;}
};

復雜度分析

  • 時間復雜度: O(n! * n)
  • 空間復雜度: O(n)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14735.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14735.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14735.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《基于Jmeter的性能測試框架搭建》改進一

《基于Jmeter的性能測試框架搭建》文末筆者提到了不少待改進之處&#xff0c;如下所示。 Grafana性能圖表實時展現&#xff0c;測試過程中需實時截圖形成測試報告&#xff0c;不夠人性化。解決方案&#xff1a;自動生成測試報告并郵件通知。 Grafana性能圖表需測試人員實時監控…

Big Demo Day第十三期活動即將啟幕,Web3創新項目精彩紛呈,PEPE大獎等你抽取

5月28號在香港數碼港 Big Demo Day第十三期 活動即將拉開帷幕&#xff0c;活動將匯集眾多Web3領域的創新項目&#xff0c;為參會者帶來一場科技與智慧交融的盛宴。在這里&#xff0c;你不僅能深入了解區塊鏈、AI等前沿技術的最新應用&#xff0c;還能有機會贏取豐厚的PEPE大獎。…

免費wordpress中文主題

免費大圖wordpress主題 首頁是一張大圖的免費wordpress主題模板。簡潔實用&#xff0c;易上手。 https://www.jianzhanpress.com/?p5857 免費WP模板下載 頂部左側導航條的免費WP模板&#xff0c;后臺簡潔&#xff0c;新手也可以下載使用。 https://www.jianzhanpress.com/…

sizeof的了解

32位編譯器 qDebug() << "int:" << sizeof(int);qDebug() << "char:" << sizeof(char);qDebug() << "char*:" << sizeof(char*); 字節數&#xff1a; int: 4 char: 1 char*: 4 64位編譯器 字節數&#…

全棧:用戶登錄驗證,用戶注冊【數據庫】

前端用戶登錄界面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</tit…

電腦版網易云音樂聽歌識曲

文章目錄 流程 流程 電腦網易云音樂的搜索框旁邊就是聽歌識曲功能

文件上傳鞏固及流量分析

1.[GXYCTF2019]BabyUpload 1&#xff09;打開題目也是沒有任何提示&#xff0c; 2&#xff09;進入環境&#xff0c;看到下面頁面猜測是文件上傳漏洞&#xff0c;下面開始傳文件 3&#xff09;首先上傳一句話木馬 a.php&#xff0c;代碼如下&#xff1a; 下面這個代碼中并沒有…

Amesim示例篇-案例1:空間中的鋁塊散熱

前言 本文將通過一個案例繼續對Thermal庫的元件進一步講解。 案例1&#xff1a;一個300mm*300mm*1000mm&#xff08;長*寬*高&#xff09;的鋁板初始溫度為45℃&#xff0c;豎直在環境為25℃的空間內靜置60min。對流換熱系數設置為5W/m2K。本文將通過兩種建模方法對鋁塊的溫度…

微軟語音使用小計

簡介 使用微軟語音可以實現語音轉文字和文字轉語音。測試了下&#xff0c;使用還是挺方便的。 使用微軟語音有兩種方式。一種是使用命令行的形式&#xff0c;另一種是調用SDK的方式。 適合使用語音 CLI 的情況&#xff1a; 想在極少設置且無需編寫代碼的情況下試驗語音服務…

最簡單的方式解決android studio 模擬器無法聯網的問題

最簡單的方式解決android studio 模擬器無法聯網的問題 看了網上很多解決android studio內置模擬器無法聯網的問題&#xff0c;基本上都是在模擬器手機上配置dns&#xff0c;個人試了多種辦法也連不上網&#xff0c;現在給出一種&#xff0c;僅需要在命令行操作的解決安卓模擬…

輕松拿捏C語言——二分查找

&#x1f970;歡迎關注 輕松拿捏C語言系列&#xff0c;來和 小哇 一起進步&#xff01;? &#x1f308;感謝大家的閱讀、點贊、收藏和關注&#x1f495; 目錄&#x1f389; 一、介紹&#x1f308; 二、步驟&#x1f319; 三、代碼?? 一、介紹 二分查找是一種在有序數組中…

【Linux-驅動開發】

Linux-驅動開發 ■ Linux-應用程序對驅動程序的調用流程■ Linux-file_operations 結構體■ Linux-驅動模塊的加載和卸載■ 1. 驅動編譯進 Linux 內核中■ 2. 驅動編譯成模塊(Linux 下模塊擴展名為.ko) ■ Linux-■ Linux-■ Linux-設備號■ Linux-設備號-分配■ 靜態分配設備號…

React Native 之 主題偏好(十一)

如果你的 React Native 版本較新&#xff0c;它提供一個主題API useColorScheme&#xff0c;你可以直接使用它。如果不是&#xff0c;需安裝額外的庫&#xff0c;如react-native-appearance。 下面是一個使用 react-native-appearance&#xff08;或 useColorScheme&#xff0…

家電維修上門維修小程序怎么搭建制作?

?在家庭生活中&#xff0c;家電的維修問題一直是人們關注的焦點。隨著微信小程序的普及&#xff0c;家電維修服務行業也迎來了線上轉型的機遇。一款便捷、高效的家電維修上門維修小程序&#xff0c;不僅能為維修服務商帶來新的客戶&#xff0c;也能為用戶帶來更便捷的服務體驗…

[Algorithm][動態規劃][路徑問題][下降路徑最小和][最小路徑和][地下城游戲]詳細講解

目錄 1.下降路徑最小和1.題目鏈接2.算法原理詳解3.代碼實現 2.最小路徑和1.題目鏈接2.算法原理詳解3.代碼實現 3.地下城游戲1.題目鏈接2.算法原理詳解3.代碼實現 1.下降路徑最小和 1.題目鏈接 下降路徑最小和 2.算法原理詳解 思路&#xff1a; 確定狀態表示 -> dp[i][j]的…

用WPS將多張圖片生成一個pdf文檔,注意參數設置

目錄 1 新建一個docx格式的文檔 2 向文檔中插入圖片 3 設置頁邊距 4 設置圖片大小 5 導出為pdf格式 需要把十幾張圖片合并為一個pdf文件&#xff0c;本以為很簡單&#xff0c;迅速從網上找到兩個號稱免費的在線工具&#xff0c;結果浪費了好幾分鐘時間&#xff0c;發現需要…

面試-軟件工程與設計模式相關,Spring簡介

面試-軟件工程與設計模式相關&#xff0c;Spring簡介 1.編程思想1.1 面向過程編程1.2 面向對象編程1.2.1 面向對象編程三大特征 1.3 面向切面編程1.3.1 原理1.3.2 大白話&#xff1f;1.3.3 名詞解釋1.3.4 實現 2. 耦合與內聚2.1 耦合性2.2 內聚性 3. 設計模式3.1 設計模型七大原…

【Nodejs-多進程之Cluster】

cluster 模塊是 Node.js 提供的一個用于多進程的模塊&#xff0c;它可以輕松地創建一組共享同一個服務器端口的子進程&#xff08;worker進程&#xff09;。通過使用 cluster 模塊&#xff0c;可以充分利用多核系統&#xff0c;提高應用程序的性能和可靠性。 基本原理 cluste…

#php把pdf文件轉成圖片#

本地環境 系統&#xff1a;win11 64位 環境&#xff1a;phpStudy PHP版本&#xff1a;8.0.2 礦建&#xff1a;laravel 配置擴展 一、安裝imageMagick 下載地址&#xff1a;https://imagemagick.org/script/download.php 安裝版本&#xff1a;ImageMagick-最新版本-Q16-HDRI-x64…

Docker: exec命令淺析

簡介 Docker exec命令是Docker提供的一個強大工具&#xff0c;用于在正在運行的容器中執行命令。在此將介紹Docker exec命令的用法和示例&#xff0c;幫助大家更好地理解和使用這個命令。 Docker是一種流行的容器化平臺&#xff0c;允許用戶在容器中運行應用程序。有時候&#…