【LeetCode打卡】Day25|216.組合總和III、17.電話號碼的字母組合

學習目標:

  • 216.組合總和III
  • 17.電話號碼的字母組合

學習內容:

216.組合總和III

題目鏈接 &&文章講解
找出所有相加之和為 n 的 k 個數的組合,且滿足下列條件:

  • 只使用數字1到9
  • 每個數字 最多使用一次
    返回所有可能的有效組合的列表 。該列表不能包含相同的組合兩次,組合可以以任何順序返回。
class Solution {List<List<Integer>> result= new ArrayList<>();List<Integer> path = new ArrayList<>();public List<List<Integer>> combinationSum3(int k, int n) {backtracking(n,k,0, 1);return result;}//1.遞歸函數參數以及返回值public void backtracking(int targetSum, int k, int sum, int startIndex){//2.剪枝操作:sum > targetSum   確定終止條件:path.size == kif(sum > targetSum) return;if(path.size() == k){if(targetSum == sum){result.add(new ArrayList<>(path));return;}}//3.單層處理邏輯//剪枝操作:i < 9 - (k - path.size()) + 1for(int i = startIndex; i <= 9 - (k - path.size()) + 1; i++){sum += i;path.add(i);backtracking(targetSum, k, sum, i + 1);sum -= i;path.removeLast();}}
}

17.電話號碼的字母組合

題目鏈接&&文章講解
給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。答案可以按 任意順序 返回。
給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。


class Solution {//存儲最終結果List<String> list = new ArrayList<>();//存儲每次迭代字符串StringBuilder str = new StringBuilder();public List<String> letterCombinations(String digits) {if (digits == null || digits.length() == 0) {return list;}//數字-字母映射String[] numString = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};backTracking(digits, numString, 0);return list;}//樹形結構深度:digits.length()  樹形結構寬度:letter.lengthpublic void backTracking(String digits, String[] numString, int index){if(index == digits.length()){list.add(str.toString());return;}String letter = numString[digits.charAt(index) - '0'];for(int i = 0; i < letter.length(); i++){str.append(letter.charAt(i));backTracking(digits, numString, index + 1);str.deleteCharAt(str.length() - 1);}}
}

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

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

相關文章

集成測試之我的初步學習與總結

基本概念 將軟件集成起來后進行測試。 集成測試又叫子系統測試、組裝測試、部件測試等。集成測試主要是針對軟件高層設計進行測試&#xff0c;一般來說是以模塊和子系統為單位進行測試。 集成測試包含的層次 模塊內的集成&#xff0c;主要是測試模塊內各個接口間的交互集成…

我是如何系統自學python的,值得一看!

當然&#xff0c;我很樂意幫助你規劃一個系統的Python自學計劃。以下是我為你準備的一個簡潔、高效、實戰的Python自學指南&#xff1a; 第一步&#xff1a;基礎語法和數據結構 學習Python的基本語法&#xff0c;包括變量、數據類型、運算符、條件語句、循環語句等。理解Pyth…

day_12二叉樹理論基礎以及遍歷

第六章 二叉樹part01 今日內容&#xff1a; 理論基礎 遞歸遍歷 迭代遍歷 統一迭代 詳細布置 題目分類 二叉樹的種類 二叉樹有兩種主要的形式&#xff1a;滿二叉樹和完全二叉樹。 滿二叉樹 滿二叉樹&#xff1a;如果一棵二叉樹只有度為0的結點和度為2的結點&#xff0c;并…

java ThreadPoolExecutor 線程池

優點 ThreadPoolExecutor 提供了強大的靈活性和自定義參數的能力&#xff0c;可以根據實際需求來靈活配置線程池的行為。 位置 java.util.concurrent 包下 構造函數 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,…

進程與線程:通過實際生活來解析計算機的基本運作單位

進程與線程 進程與線程&#xff1a;詳細解析計算機的基本運作單位1. 進程&#xff1a;獨立的執行環境1.1 進程的特點&#xff1a; 2. 線程&#xff1a;輕量級的執行單元2.1 線程的特點&#xff1a; 3. 區別和聯系4. 表格 進程與線程&#xff1a;詳細解析計算機的基本運作單位 在…

Unity鉸鏈四桿機構設計和運動仿真

一、效果圖 設定好各邊長度和轉速后&#xff0c;點擊【設置并啟動】&#xff0c;自動生成一個機構模型&#xff0c;并按照原理進行運轉 二、鉸鏈四桿機構介紹 機架&#xff1a;A和D是固定位置&#xff0c;叫做機架。 曲柄&#xff1a;B點繞A點旋轉&#xff0c;構成曲柄。 連…

990-22產品經理:The benefits of business analytics 業務分析的優勢

Turning data into pound isn’t just something for big corporations now. Thanks to relatively inexpensive software and easy-to-use, drag-and-drop tools, pulling data and analysing it – with the goal of growing your business – has never been more uncomplic…

英語學習資源分享

鍵盤俠的單詞記憶軟件&#xff1a; Qwerty Learner — 為鍵盤工作者設計的單詞與肌肉記憶鍛煉軟件https://qwerty.kaiyi.cool/ 經濟學人、紐約客等英語外刊雜志下載&#xff1a;若github無法進入可以試試下載VPN插件&#xff08;在瀏覽器中安裝免費的VPN插件&#xff0c;個人推…

重拾C++之菜鳥刷算法第4篇---哈希表

一些理論知識 哈希函數是一種映射關系&#xff0c;根據關鍵詞key&#xff0c;經過一定函數關系得到元素的位置。 常見的哈希函數構造方法 直接定址法 除留余數法 疊加法 隨機數法 哈希沖突 不同關鍵字通過相同哈希函數計算出相同的哈希地址&#xff0c;該種現象稱為哈希…

視頻匯聚/存儲/壓縮/診斷平臺EasyCVR視頻聯網整合方案應用特點

隨著科技的不斷發展&#xff0c;監控視頻在各個領域的應用越來越廣泛。為了更好地管理和利用這些視頻資源&#xff0c;視頻聯網與整合的需求也越來越多。通過視頻聯網技術將不同地理位置或不同設備的視頻資源進行整合&#xff0c;實現實時共享和集中管理。視頻聯網整合方案的應…

6、云原生安全之falco的規則解讀(部分)(下)

文章目錄 3、規則解析記錄3.21、檢測是否有非特權用戶成功執行userfaultfd系統調用3.22、監控容器內通過curl/wget的下載行為3.23、檢測容器內修改release_agent文件的場景(無論修改成功與否)3.24、檢測Java進程通過網絡加載class類文件的行為,該規則用于檢測log4j的應急3.2…

Linux運維_Bash腳本_編譯安裝GNU-Tools

Linux運維_Bash腳本_編譯安裝GNU-Tools Bash (Bourne Again Shell) 是一個解釋器&#xff0c;負責處理 Unix 系統命令行上的命令。它是由 Brian Fox 編寫的免費軟件&#xff0c;并于 1989 年發布的免費軟件&#xff0c;作為 Sh (Bourne Shell) 的替代品。 您可以在 Linux 和 …

2024最新算法:鸚鵡優化算法(Parrot optimizer,PO)求解23個基準函數

一、鸚鵡優化算法 鸚鵡優化算法&#xff08;Parrot optimizer&#xff0c;PO&#xff09;由Junbo Lian等人于2024年提出的一種高效的元啟發式算法&#xff0c;該算法從馴養的鸚鵡中觀察到的覓食、停留、交流和對陌生人行為的恐懼中汲取靈感。這些行為被封裝在四個不同的公式中…

C++_紅黑樹

目錄 1、紅黑樹的規則 2、紅黑樹節點的定義 3、紅黑樹插入節點的調整操作 3.1 情況一 3.2 情況二 3.3 情況三 4、紅黑樹的實現 結語 前言&#xff1a; 在C中&#xff0c;紅黑樹是二叉搜索樹的另一種優化版本&#xff0c;他與AVL樹的區別在于保持樹的平衡方式不同&…

【Mysql】Navicat數據庫勿刪了mysql.infoschema@localhost,導致打不開數據庫,如何修改

運行報錯如下&#xff1a; 1449 . The user specified as a definer (mysql.infoschemaocalhost) does not exist該方法不需要重啟mysql&#xff0c;或者重裝&#xff1b;僅需要恢復刪除的mysql.infoschemalocalhost用戶 一、登錄建立用戶 mysql -uroot -pxxxxxx密碼二、建立…

【網上商城系統的設計與開發】

目錄 1.實訓概況 1 1.1 實訓題目 1 1.2實訓時間 1 1.3實訓目的 1 1.4 實訓環境 1 1.5 實訓內容 2 1.6 進度安排 3 2.需求分析 5 2.1 功能需求分析 5 2.1.1用戶需求分析 5 2.2.2網站前臺需求 5 2.2.3網站后臺需求 6 2.2 可行性分析 7 2.2.1社會可行性 7 2.2.2技術可行性 8 3.系統…

Sora學習(一):Sora技術路徑整體認知

前文&#xff1a;最近跟著DataWhale組隊學習這一期“Sora原理與技術實戰”&#xff0c;本篇博客主要是基于DataWhale成員、廈門大學平潭研究院楊知錚研究員分享的Sora技術原理詳解課件內容以及參考網上一些博客資料整理而來&#xff08;詳見文末參考文獻&#xff09;&#xff0…

【談一談】并發編程_鎖的分類

【談一談】并發編程_鎖的分類 Hello!~大家好!~每天進步一點點,日復一日,我們終將問劍頂峰 這里主要是介紹下我們常用的鎖可以分為幾類,目的是整體框架作用~方便后續的并發文章 說白了,這篇就是開頭哈~ 本文總綱: 一.可重入鎖和不可重入鎖 我們開發中一般用到的都是可重入鎖比如…

Photoshop 2023:重塑創意,引領數字藝術新紀元

在數字藝術的浩瀚星空中&#xff0c;Adobe Photoshop 2023&#xff08;簡稱PS 2023&#xff09;如同一顆璀璨的新星&#xff0c;為Mac和Windows用戶帶來了前所未有的創意體驗。這款強大的圖像處理軟件不僅繼承了前作的精髓&#xff0c;更在細節上進行了諸多創新&#xff0c;讓每…

運行Python文件時出現‘utf-8’code can‘t decode byte 如何解決?(如圖)

如圖 亦或者出現“SyntaxError: Non-UTF-8 code starting with \xbb ” 出現這種問題往往是編碼格式導致的&#xff0c;我們可以在py文件中的第一行加入以下代碼&#xff1a; # codingutf-8或者 # codinggdk優先使用gbk編碼 解釋一下常用的兩種編碼格式&#xff1a; utf-…