Leetcode 39 組合總和

題意理解:

????????一個?無重復元素?的整數數組?candidates?和一個目標整數?target?? ?

? ? ? ? 從candidates?取數字,使其和==?target?,有多少種組合(candidates?中的?同一個?數字可以?無限制重復被選取

? ? ? ? 這道題和之前一道組合的區別:這道題允許重復的數字

解題思路

? ? ? ? 組合問題——>遞歸

? ? ? ? 這道題特殊的地方,對組合內數字的和做了要求,而不是個數,一開始并不確定樹的深度,組合的大小是不定的。

1.暴力回溯+剪枝優化

class Solution {List<List<Integer>> result=new ArrayList<>();LinkedList<Integer> path=new LinkedList<>();int sum=0;public List<List<Integer>> combinationSum(int[] candidates, int target) {backtracking(candidates,target,0);return result;}public void backtracking(int[] candidates,int target,int index){//結果收集if(sum==target){result.add(new ArrayList<>(path));return;} else if (sum>target) {//剪枝return;}//遍歷分支for(int i=index;i<candidates.length;i++){path.add(candidates[i]);sum+=candidates[i];//遞歸backtracking(candidates,target,i);//回溯path.removeLast();sum-=candidates[i];}}
}

2.分析

時間復雜度:O(n\times 2^{n})

? ? ? ? n個位置,每個位置有兩種可能選或不選。

? ? ? ? 時間復雜度和樹的深度有關,是所有可行解之和

空間復雜度:O(n)

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

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

相關文章

Vue學習筆記-Vue3中setup函數注意點

setup編寫示例 <script> import {reactive} from vue export default {name: "DemoVue",props:[xxx,yy,...],setup(props,context){const data reactive({......})//setup必須有返回值return {data,}} } </script>setup執行的時機 在beforeCreate()之…

【51單片機系列】74HC595實現對LED點陣的控制

本文是關于LED點陣的使用&#xff0c;使用74HC595模塊實現對LED點陣的控制。 文章目錄 一、8x8LED點陣的原理1.1 LED點陣顯示原理1.2 LED點陣內部結構圖1.3 開發板上的LED點陣原理圖1.4 74HC595芯片 二、使用74HC595模塊實現流水燈效果三、 使用74HC595模塊控制LED點陣對角線亮…

python基于DeeplabV3Plus開發構建手機屏幕表面缺陷圖像分割識別系統

Deeplab是圖像分割領域非常強大的模型&#xff0c;在前面的博文中我們也進行過很多相應項目的開發實踐&#xff0c;感興趣的話可以自行移步閱讀即可&#xff1a; 《基于DeepLabv3Plus開發構建人臉人像分割系統》 《基于DeepLabV3實踐路面、橋梁、基建裂縫裂痕分割》 《基于D…

【鏈表Linked List】力扣-203 移除鏈表元素

目錄 題目描述 解題過程 題目描述 給你一個鏈表的頭節點 head 和一個整數 val &#xff0c;請你刪除鏈表中所有滿足 Node.val val 的節點&#xff0c;并返回 新的頭節點 。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,6,3,4,5,6], val 6 輸出&#xff1a;[1,2,3,4,5…

快速學會繪制Pyqt5中的所有圖(下)

Pyqt5相關文章: 快速掌握Pyqt5的三種主窗口 快速掌握Pyqt5的2種彈簧 快速掌握Pyqt5的5種布局 快速弄懂Pyqt5的5種項目視圖&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4種項目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6種按鈕 快速掌握Pyqt5的10種容器&…

鴻蒙原生應用開發——分布式數據對象

01、什么是分布式數據對象 在可信組網環境下&#xff0c;多個相互組網認證的設備將各自創建的對象加入同一個 sessionId&#xff0c;使得加入的多個數據對象之間可以同步數據&#xff0c;也就是說&#xff0c;當某一數據對象屬性發生變更時&#xff0c;其他數據對象會檢測到這…

讓聰明的車連接智慧的路,C-V2X開啟智慧出行生活

“聰明的車 智慧的路”形容的便是車路協同的智慧交通系統&#xff0c;從具備無鑰匙啟動&#xff0c;智能輔助駕駛和豐富娛樂影音功能的智能網聯汽車&#xff0c;到園區的無人快遞配送車&#xff0c;和開放的城市道路上自動駕駛的公交車、出租車&#xff0c;越來越多的車聯網應用…

thinkphp lists todo

來由&#xff1a; 數據庫的這個字段我想返回成&#xff1a; 新奇的寫法如下&#xff1a; 邏輯層的代碼&#xff1a; public function goodsDetail($goodId){$detail $this->good->where(id, $goodId)->hidden([type_params,user_id])->find();if (!$detail) {ret…

springboot(ssm出租車管理網站 出租車公司管理系統Java系統

springboot(ssm出租車管理網站 出租車公司管理系統Java系統 開發語言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服務器&#xff1a;tomcat 數據庫&#xff1a;mysql 5.7&#xff08;或8.0&#xff09;…

如何使用PostMan進行并發測試?

如何使用PostMan進行并發測試&#xff1f; &#x1f440;(Postman 的 runner 實際上是串行執行的&#xff0c;因此不能作為并發測試&#xff0c; 只是批量測試&#xff0c;本文如下稱為并發的是錯誤的) 文章目錄 如何使用PostMan進行并發測試&#xff1f;POST篇流程Pre-req 腳…

Conda常用命令總結

使用conda或anaconda的小伙伴們都知道&#xff0c;圖形界面時不靠譜的&#xff0c;而在命令行下&#xff0c;所有的操作就會穩定很多&#xff0c;且極少出現問題。因此&#xff0c;熟記conda的命令行就變得十分有用。但對于我這樣近50歲依舊奮斗在代碼第一線的大齡程序員而已&a…

攔截 open調用 (進程白名單,文件白名單)

攔截 open 文章目錄 攔截 open第一個需求文件結構進程白名單文件白名單 測試代碼第一個版本版本二代碼演示 增加一個日志記錄代碼解釋 gcc -shared -fPIC -o libintercept.so intercept.c -ldlLD_PRELOAD./libintercept.so ./processA在Linux中&#xff0c;我們可以使用LD_PREL…

ZooKeeper學習二

ZooKeeper的java客戶端 zk自帶zkclient及Apache開源的Curator Chubby是google的&#xff0c;完全實現paxos算法&#xff0c;不開源&#xff0c;ZooKeeper是chubby的開源實現&#xff0c;使用zab協議&#xff0c;paxos算法的變種。 ZooKeeper常用命令&#xff1a; Is get set …

MySQL:1118 - Row size too large(行大小不能超過 65535 問題)

文章目錄 問題原因問題復現環境 & 版本復現過程 解決方案調整列大小調整列類型 個人簡介 問題 當我們創建表或新增字段時&#xff0c;我們可能遇到下面這個問題&#xff1a; 1118 - Row size too large. The maximum row size for the used table type, not counting BLO…

12.Mysql 多表數據橫向合并和縱向合并

Mysql 函數參考和擴展&#xff1a;Mysql 常用函數和基礎查詢、 Mysql 官網 Mysql 語法執行順序如下&#xff0c;一定要清楚&#xff01;&#xff01;&#xff01;運算符相關&#xff0c;可前往 Mysql 基礎語法和執行順序擴展。 (8) select (9) distinct (11)<columns_name…

【力扣熱題100】287. 尋找重復數(弗洛伊德的烏龜和兔子方法)

【力扣熱題100】287. 尋找重復數 寫在最前面理解解決 "尋找重復數" 問題的算法問題描述弗洛伊德的烏龜和兔子方法為什么這個方法有效&#xff1f; 代碼復雜度 總結回顧 寫在最前面 刷一道力扣熱題100吧 難度中等 https://leetcode.cn/problems/find-the-duplicate-…

HTML 常用表單元素使用以及注解

一、表單的用途 HTML 表單用于收集用戶的輸入信息。 HTML 表單表示文檔中的一個區域&#xff0c;此區域包含交互控件&#xff0c;將用戶收集到的信息發送到 Web 服務器。 一個表單有三個基本組成部分&#xff1a; 表單標簽&#xff1a;這包含了處理表單數據所用的URL以及數據…

vue使用$router.push()或者$router.go(),重新返回上一頁不走生命周期

是因為在App.vue中&#xff0c;vue路由&#xff08;router-view&#xff09;組件使用路由緩存組件(keep-alive)包裹著&#xff0c;導致不重新走生命周期&#xff0c;這樣可以提高運行效率&#xff0c;但有時候&#xff0c;我們需要重新加載生命周期刷新數據。 解決方案&#x…

Java Web應用小案例 - 實現用戶登錄功能

文章目錄 一、使用純JSP方式實現用戶登錄功能&#xff08;一&#xff09;項目概述&#xff08;二&#xff09;實現步驟1、創建Web項目2、創建登錄頁面 二、使用JSPServlet方式實現用戶登錄功能三、使用JSPServletDB方式實現用戶登錄功能 一、使用純JSP方式實現用戶登錄功能 &a…

ubuntu22.04安裝 nvidia-cudnn

nvidia-cudnn 是 NVIDIA CUDA 深度神經網絡庫&#xff08;CUDA Deep Neural Network library&#xff09;的縮寫。這是一個由 NVIDIA 提供的庫&#xff0c;用于加速深度學習應用程序。它包含了針對深度神經網絡中常用操作&#xff08;如卷積、池化、歸一化、激活層等&#xff0…