leetcode做題筆記78子集

給你一個整數數組?nums?,數組中的元素?互不相同?。返回該數組所有可能的子集(冪集)。

解集?不能?包含重復的子集。你可以按?任意順序?返回解集。

思路一:回溯

void backtracking(int* nums, int numsSize, int** res, int* returnSize, int** returnColumnSizes, int* path, int pathSize, int startIndex) {res[*returnSize] = (int*)malloc(sizeof(int) * pathSize);memcpy(res[*returnSize], path, sizeof(int) * pathSize);(*returnColumnSizes)[*returnSize] = pathSize;(*returnSize)++;for (int i = startIndex; i < numsSize; i++) {path[pathSize] = nums[i];backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);}
}int** subsets(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {*returnSize = 0;*returnColumnSizes = (int*)malloc(sizeof(int) * 10001);int** res = (int**)malloc(sizeof(int*) * 10001);int* path = (int*)malloc(sizeof(int) * numsSize);backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, 0, 0);return res;
}

分析:

本題與上一題相似,利用回溯算法將數組內子集全部列出即可,path[pathSize] = nums[i];

backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);將子集全部列出,最后返回res

總結:

本題考察回溯的應用,將子集按順序全部列出即可解決

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

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

相關文章

在 Linux 虛擬機上使用 Azure 自定義腳本擴展版本

參考 azure創建虛擬機,創建虛擬機注意入站端口規則開放80端口、 2.轉到資源&#xff0c;點擊擴展應用程序&#xff0c;創建存儲賬戶&#xff0c;創建容器&#xff0c;上傳文件&#xff0c;選擇文件&#xff0c;會自動執行部署。 apt-get update -y && apt-get insta…

ROS訂閱相機圖像消息,并將圖像保存為視頻幀

需求 需要編寫一個Python程序&#xff0c;訂閱電腦外接的深度相機發出的視頻消息&#xff0c;錄制視頻并逐幀保存為圖片到本地&#xff0c;用于采集制作數據集的圖片信息 運行環境 Ubuntu18.04 ROS Melodic Python2.7 Python程序 #!/usr/bin/env python # -*- coding: u…

Vue-day03 組件

1.組件機制 組件 (Component) 是 Vue.js 最強大的功能之一。組件可以擴展HTML元素&#xff0c;封裝可重用的代碼。在較高層面上&#xff0c;組件是自定義元素&#xff0c;Vue的編譯器為它添加特殊功能。在有些情況下&#xff0c;組件也可以表現為用is特性進行了擴展的原生 HTML…

chatgpt和xmind結合起來幫你制作精美的思維導圖

介紹 chatgpt和xmind結合起來幫你制作精美的思維導圖。 1.輸出Markdown格式 2.xmind導入.md文件

web集群學習:nginx+keepalived實現負載均衡高可用性

目錄 項目架構 一&#xff0c;環境介紹 二&#xff0c;項目部署 在Web服務器上配置Web測試頁面 nginx負載均衡配置 配置Nginx_Master 通過vrrp_script實現對集群資源的監控&#xff08;1>通過killall命令探測服務運行狀態&#xff09; 通過vrrp_script實現對集群資源…

div輸入框的文字超過指定行數用省略號表示css

實現效果&#xff1a;超過四行用省略號表示 實現方法&#xff1a; .text{overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 4; // 自定義行數-webkit-box-orient: vertical; }

Go和Java實現外觀模式

Go和Java實現外觀模式 下面我們通過一個構造各種形狀的案例來說明外觀模式的使用。 1、外觀模式 外觀模式隱藏系統的復雜性&#xff0c;并向客戶端提供了一個客戶端可以訪問系統的接口。這種類型的設計模式屬于結構型 模式&#xff0c;它向現有的系統添加一個接口&#xff…

【設計模式】代理模式

在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一個類代表另一個類的功能。這種類型的設計模式屬于結構型模式。 在代理模式中&#xff0c;我們創建具有現有對象的對象&#xff0c;以便向外界提供功能接口。 介紹 意圖&#xff1a;為其他對象提供一種代理以…

【面試問題】事務中執行了異步任務分發數據,由于事務未提交,導致異步任務無法執行

文章目錄 問題描述&#xff1a;解決辦法&#xff1a; 問題描述&#xff1a; OverrideTransactional(rollbackFor Exception.class)public ServiceResponse ctsqCallbackProcess(OaFlowRecord params) {// 查詢任務單數據// 更新任務單信息// 異步分發數據到CRMS系統}客戶數據分…

TX Text Control .NET Server for ASP.NET Crack

TX Text Control .NET Server for ASP.NET Crack TX Text Control.NET Server for ASP.NET是用于Web應用程序或服務的服務器端組件。它是一個完全可編程的ASP.NET文字處理引擎&#xff0c;提供了廣泛的文字處理功能。使用TX Text Control.NET Server&#xff0c;程序員可以開發…

react組件化開發詳解

React是一個流行的JavaScript庫&#xff0c;用于構建用戶界面&#xff0c;并且以組件化的方式進行開發。下面將詳解React組件化開發的概念和步驟&#xff1a; 組件化思維&#xff1a; 組件化開發是將復雜的用戶界面劃分為獨立、可重用的小部件&#xff08;組件&#xff09;。…

【833. 字符串中的查找與替換】

來源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 你會得到一個字符串 s (索引從 0 開始)&#xff0c;你必須對它執行 k 個替換操作。替換操作以三個長度均為 k 的并行數組給出&#xff1a;indices, sources, targets。 要完成第 i 個替換操作: 檢查…

Spring事務傳播機制

hi ,大家好,繼續為大家帶來Spring事務傳播機制的相關知識 文章目錄 &#x1f917;1.事務傳播機制是什么&#x1f917;2.事務傳播機制作用&#x1f917;3.事務傳播機制 &#x1f917;1.事務傳播機制是什么 定義了多個包含了事務的?法&#xff0c;相互調?時&#xff0c;事務是…

C++教程 - How to C++系列專欄第3篇

關于專欄 這個專欄是優質的C教程專欄&#xff0c;如果你還沒看過第0篇&#xff0c;點擊C教程 - How to C系列專欄第0篇去第0篇 本專欄一致使用操作系統&#xff1a;macOS Ventura&#xff0c;代碼編輯器&#xff1a;CLion&#xff0c;C編譯器&#xff1a;Clang 感謝一路相伴…

[C++ 網絡協議編程] UDP協議

目錄 1. UDP和TCP的區別 2. UDP的工作原理 3. UDP存在數據邊界 4. UDP的I/O函數 4.1 sendto函數 4.2 recvfrom函數 4. 已連接(connected)UDP套接字和未連接(unconnected)UDP套接字 5. UDP的通信流程 5.1 服務器端通信流程 5.2 客戶端通信流程 1. UDP和TCP的區別 主要…

從安全角度分析Angular本地存儲

隨著Web應用程序的不斷增長&#xff0c;前端開發人員慢慢意識到使用瀏覽器提供的本地存儲技術可以在不使用外部數據庫的情況下方便地保存應用程序的數據。Angular作為目前最流行的前端框架之一&#xff0c;也在其API中提供了許多本地存儲技術的支持。但是&#xff0c;在使用本地…

Electron教程_編程入門自學教程_菜鳥教程-免費教程分享

教程簡介 Electron是一個是使用JavaScript&#xff0c;HTML和CSS構建跨平臺的桌面應用程序框架。 Electron 通過將 Chromium 和 Node.js 合并到同一個運行時環境中&#xff0c;并將其打包為 Mac&#xff0c;Windows 和 Linux 系統下的應用來實現這一目的。 Electron入門教程 …

【深度學習】日常筆記16

可以將pd.DataFrame數據結構理解為類似于Excel中的表格。pd.DataFrame是pandas庫提供的一個二維數據結構&#xff0c;用于存儲和操作具有行和列的數據。它類似于Excel中的工作表&#xff0c;其中每一列可以是不同的數據類型&#xff08;例如整數、浮點數、字符串等&#xff09;…

關于安卓打包生成aar,jar實現(一)

關于安卓打包生成aar&#xff0c;jar方式 背景 在開發的過程中&#xff0c;主項目引入三方功能的方式有很多&#xff0c;主要是以下幾個方面&#xff1a; &#xff08;1&#xff09;直接引入源代碼module&#xff08;優點&#xff1a;方便修改源碼&#xff0c;易于維護&#…

Spring_AOP

一、AOP簡介 AOP&#xff0c;Aspect Oriented Programming,面向切面編程,是對面向對象編程0OP的升華。OOP是縱向對一個事物的抽象&#xff0c;一個對象包括靜態的屬性信息&#xff0c;包括動態的方法信息等。而AOP是橫向的對不同事物的抽象,屬性與屬性、方法與方法、對象與對象…