專題三_窮舉vs暴搜vs深搜vs回溯vs剪枝_全排列

dfs解決 全排列&子集

1.全排列

link:46. 全排列 - 力扣(LeetCode)

全局變量+回溯

code

class Solution {
public:vector<vector<int>> ans;vector<int> cur;vector<bool> used;vector<vector<int>> permute(vector<int>& nums) {// 暴力枚舉used = vector<bool>(nums.size(), false);dfs(nums);return ans;}void dfs(vector<int>& nums){   // 出口if(cur.size() == nums.size()){ans.push_back(cur);return;}// 主體for(int i = 0; i < nums.size(); i++){if(used[i]) continue; // 剪枝cur.push_back(nums[i]);used[i] = true;dfs(nums);used[i] = false;cur.pop_back(); // 回溯}}
};

2.子集

link:78. 子集 - 力扣(LeetCode)

code

class Solution {
public:vector<vector<int>> ans;vector<int> cur;vector<vector<int>> subsets(vector<int>& nums) {dfs(nums, 0);return ans;}void dfs(vector<int>& nums, int idx)// idx表示這次選擇取舍的下標{// 出口if(idx >= nums.size()){ans.push_back(cur);return;}// 主體//      要了cur.push_back(nums[idx]);dfs(nums, idx + 1);cur.pop_back();// 回溯//      不要dfs(nums, idx + 1);}
};

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

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

相關文章

2_高并發內存池_各層級的框架設計及ThreadCache(線程緩存)申請內存設計

一、高并發內存池框架設計 高并發池框架設計&#xff0c;特別是針對內存池的設計&#xff0c;需要充分考慮多線程環境下&#xff1a; 性能問題鎖競爭問題內存碎片問題 高并發內存池的整體框架設計旨在提高內存的申請和釋放效率&#xff0c;減少鎖競爭和內存碎片。 高并發內存…

JAVA 使用反射比較對象屬性的變化,記錄修改日志。使用注解【策略模式】,來進行不同屬性枚舉值到中英文描述的切換,支持前端國際化。

1.首先定義一個接口&#xff0c;接口中有兩個方法&#xff0c;分別是將屬性轉換成英文描述和中文描述。 其實就是將數據庫中記錄的 0 1 &#xff0c;轉換成后面的描述 這邊定義了中文轉換為默認方法&#xff0c;是因為有些屬性不需要進行中文轉換&#xff0c;或者該屬性的枚舉…

webrtc入門系列(五)amazon-kinesis-video-streams-webrtc-sdk-c編譯

《webrtc入門系列&#xff08;一&#xff09;easy_webrtc_server 入門環境搭建》 《webrtc入門系列&#xff08;二&#xff09;easy_webrtc_server 入門example測試》 《webrtc入門系列&#xff08;三&#xff09;云服務器coturn環境搭建》 《webrtc入門系列&#xff08;四&…

AIGC大模型詳解(ChatGPT,Cursor,豆包,文心一格)

定義與概念 AIGC&#xff08;AI Generated Content&#xff09;大模型是基于人工智能技術&#xff0c;具有海量參數、強大算力支持&#xff0c;能處理和生成多種類型內容的深度學習模型。可自主學習數據中的模式和規律&#xff0c;生成文本、圖像、音頻等內容&#xff0c;如Ch…

.NET9增強OpenAPI規范,不再內置swagger

ASP.NETCore in .NET 9.0 OpenAPI官方文檔ASP.NET Core API 應用中的 OpenAPI 支持概述 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/openapi/overview?viewaspnetcore-9.0https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/ope…

第38周:貓狗識別 (Tensorflow實戰第八周)

目錄 前言 一、前期工作 1.1 設置GPU 1.2 導入數據 輸出 二、數據預處理 2.1 加載數據 2.2 再次檢查數據 2.3 配置數據集 2.4 可視化數據 三、構建VGG-16網絡 3.1 VGG-16網絡介紹 3.2 搭建VGG-16模型 四、編譯 五、訓練模型 六、模型評估 七、預測 總結 前言…

我的2024年年度總結

序言 在前不久&#xff08;應該是上周&#xff09;的博客之星入圍賽中鎩羽而歸了。雖然心中頗為不甘&#xff0c;覺得這一年兢兢業業&#xff0c;每天都在發文章&#xff0c;不應該是這樣的結果&#xff08;連前300名都進不了&#xff09;。但人不能總抱怨&#xff0c;總要向前…

Trimble三維激光掃描-地下公共設施維護的新途徑【滬敖3D】

三維激光掃描技術生成了復雜隧道網絡的高度詳細的三維模型 項目背景 紐約州北部的地下通道網絡已有100年歷史&#xff0c;其中包含供暖系統、電線和其他公用設施&#xff0c;現在已經開始顯露出老化跡象。由于安全原因&#xff0c;第三方的進入受到限制&#xff0c;在沒有現成紙…

QT 中 UDP 的使用

目錄 一、UDP 簡介 二、QT 中 UDP 編程的基本步驟 &#xff08;一&#xff09;包含頭文件 &#xff08;二&#xff09;創建 UDP 套接字對象 &#xff08;三&#xff09;綁定端口 &#xff08;四&#xff09;發送數據 &#xff08;五&#xff09;接收數據 三、完整示例代…

開源鴻蒙開發者社區記錄

lava鴻蒙社區可提問 Laval社區 開源鴻蒙項目 OpenHarmony 開源鴻蒙開發者論壇 OpenHarmony 開源鴻蒙開發者論壇

Git上傳了秘鑰如何徹底修改包括歷史記錄【從安裝到實戰詳細版】

使用 BFG Repo-Cleaner 清除 Git 倉庫中的敏感信息 1. 背景介紹 在使用 Git 進行版本控制時&#xff0c;有時會不小心將敏感信息&#xff08;如 API 密鑰、密碼等&#xff09;提交到倉庫中。即使后續刪除&#xff0c;這些信息仍然存在于 Git 的歷史記錄中。本文將介紹如何使用…

多層 RNN原理以及實現

數學原理 多層 RNN 的核心思想是堆疊多個 RNN 層&#xff0c;每一層的輸出作為下一層的輸入&#xff0c;從而逐層提取更高層次的抽象特征。 1. 單層 RNN 的數學表示 首先&#xff0c;單層 RNN 的計算過程如下。對于一個時間步 t t t&#xff0c;單層 RNN 的隱藏狀態 h t h_t…

RNA 測序技術概覽(RNA-seq)

前言 轉錄組測序&#xff08;RNA-seq&#xff09;是當下最流行的二代測序&#xff08;NGS&#xff09;方法之一&#xff0c;使科研工作者實現在轉錄水平上定量、定性的研究&#xff0c;它的出現已經革命性地改變了人們研究基因表達調控的方式。然而&#xff0c;轉錄組測序&…

C語言練習(16)

猴子吃桃問題。猴子第一天摘下若干個桃子&#xff0c;當即吃了一半&#xff0c;還不過癮&#xff0c;又多吃了一個。第二天早上又將剩下的桃子吃掉一半&#xff0c;又多吃了一個。以后每天早上都吃了前一天剩下的一半加一個。到第10天早上想再吃時&#xff0c;見只剩一個桃子了…

【機器學習】自定義數據集使用框架的線性回歸方法對其進行擬合

一、使用框架的線性回歸方法 1. 基礎原理 在自求導線性回歸中&#xff0c;我們需要先自定義參數&#xff0c;并且需要通過數學公式來對w和b進行求導&#xff0c;然后在反向傳播過程中通過梯度下降的方式來更新參數&#xff0c;從而降低損失值。 2. 實現步驟 ① 散點輸入 有一…

pytest執行報錯:found no collectors

今天在嘗試使用pytest運行用例的時候出現報錯&#xff1a;found no collectors&#xff1b;從兩個方向進行排查&#xff0c;一是看文件名和函數名是不是符合規范&#xff0c;命名要是"test_*"格式&#xff1b;二是是否存在修改文件名的情況&#xff0c;如果修改過文件…

mysql-06.JDBC

目錄 什么是JDBC: 為啥存在JDBC: JDBC工作原理&#xff1a; JDBC的優勢&#xff1a; 下載mysql驅動包&#xff1a; 用java程序操作數據庫 1.創建dataSource: 2.與服務端建立連接 3.構造sql語句 4.執行sql 5.關閉連接&#xff0c;釋放資源 參考代碼&#xff1a; 插…

微信小程序wxs實現UTC轉北京時間

微信小程序實現UTC轉北京時間 打臉一刻&#xff1a;最近在迭代原生微信小程序&#xff0c;好一段時間沒寫原生的&#xff0c;有點不習慣&#xff1b; 咦&#xff0c;更新數據咋不生效呢&#xff1f;原來還停留在 this.xxx&#xff1b; 喲&#xff0c;事件又沒反應了&#xff1f…

機器學習-線性回歸(對于f(x;w)=w^Tx+b理解)

一、&#x1d453;(&#x1d499;;&#x1d498;) &#x1d498;T&#x1d499;的推導 學習線性回歸&#xff0c;我們那先要對于線性回歸的表達公示&#xff0c;有所認識。 我們先假設空間是一組參數化的線性函數&#xff1a; 其中權重向量&#x1d498; ∈ R&#x1d437; …

R語言學習筆記之語言入門基礎

一、R語言基礎 快速熟悉R語言中的基本概念&#xff0c;先入個門。 1、運算符 運算符含義例子加1 1-減3 - 2*乘3 * 2/除9 / 3^(**)乘方2 ^ 3 2 ** 3%%取余5 %% 2%/%取整5 %/% 2 2、賦值符號 等號a 1三者等價&#xff1a;把1賦值給變量a左箭頭<?a <- 1右箭頭?&g…