代碼隨想錄第22天|回溯part2 組合總和III電話號碼的字母組合

216.組合總和III

在這里插入圖片描述
當組合的數量為k就判斷和,并且返回。
在枚舉的時候可以進行剪枝,如果總和已經超過了n,那么就沒必要繼續遞歸下去了

class Solution {
public:vector<int> path;vector<vector<int>> res;void backTracking(int n, int k, int step, int sum) {if (path.size() == k) {if (sum == n)res.push_back(path);return;}for (int i = step; i <= 9 - (k - path.size()) + 1; i++) {if (sum + i > n)break;path.push_back(i);backTracking(n, k, i + 1, sum + i);path.pop_back();}}vector<vector<int>> combinationSum3(int k, int n) {backTracking(n, k, 1, 0);return res;}
};

17.電話號碼的字母組合

在這里插入圖片描述
遞歸遍歷每個數字,然后根據遍歷到的數字來進行枚舉即可

class Solution {
public:vector<string> res;string path;void backTracking(unordered_map<char, string>& mp, string digits,int step) {if (digits.size() == 0)return;if (step == digits.size()) {res.push_back(path);return;}string choice = mp[digits[step]];for (int i = 0; i < choice.size(); i++) {path.push_back(choice[i]);backTracking(mp, digits, step + 1);path.pop_back();}}vector<string> letterCombinations(string digits) {unordered_map<char, string> mp;mp['2'] = "abc";mp['3'] = "def";mp['4'] = "ghi";mp['5'] = "jkl";mp['6'] = "mno";mp['7'] = "pqrs";mp['8'] = "tuv";mp['9'] = "wxyz";backTracking(mp, digits, 0);return res;}
};

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

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

相關文章

微信小程序手機號碼授權登錄

文章目錄 一、微信小程序開發二、使用步驟1.前端代碼2.后臺配置3.后臺代碼 總結 一、微信小程序開發 目前個人的小程序無法使用手機號碼授權登錄&#xff0c;可以使用測試號進行開發 二、使用步驟 1.前端代碼 代碼如下&#xff08;示例&#xff09;&#xff1a; <butto…

Java版本家政上門系統源碼,自主研發、安全可控,支持任意二次開發

家政上門系統源碼&#xff0c;Java版本&#xff0c;自主研發、安全可控。支持任意二次開發、有豐富合作案例。多端管理&#xff1a;管理端、用戶端、服務端。 技術參數&#xff1a; 技術架構&#xff1a;springboot、mysql 、Thymeleaf 開發語言&#xff1a;java1.8、vue 開…

python 象棋小游戲代碼

以下是一個簡單的Python象棋小游戲的代碼示例。這個示例使用了pygame庫來創建圖形用戶界面和處理用戶輸入。 首先&#xff0c;確保安裝了pygame庫&#xff1a; pip install pygame 然后&#xff0c;可以運行以下代碼&#xff1a; import pygame import sys # 初始化pygam…

軟件開發步驟詳解

一、引言 隨著信息技術的迅猛發展&#xff0c;軟件已成為現代社會不可或缺的一部分。無論是企業運營、個人生活還是科學研究&#xff0c;都離不開各種軟件的支持。因此&#xff0c;掌握軟件開發的步驟和技巧對于IT從業者來說至關重要。本文旨在詳細介紹軟件開發的整個流程&…

Python知識點7---字典與集合

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的字典與集合是沒有下標一說的&#xff0c;字典說的其實就是ma…

使用機器學習做醫學圖像分類的開源項目集錦

項目名稱倉庫描述主要特點適配建議U-Net用于生物醫學圖像分割zhixuhao/unetKeras中的U-Net實現&#xff0c;用于2D圖像分割。 - 基本的U-Net架構 - 生物醫學圖像訓練示例 - 簡單的數據加載器 - 修改數據加載器以處理特定MRI格式 - 調整訓練管道以適應STIR序列和標簽 使用PyTor…

更改Web網站設計——css和css框架

雖然使用HTML可以定義文章的結構&#xff0c;但是其中不包含設計相關的信息。此時CSS就派上用場&#xff0c;可以用它對HTML文章指定設計樣式。由于可以決定Web網頁的外觀風格&#xff0c;因此&#xff0c;它有時也被稱為格式表。 如果使用CSS設置背景色&#xff0c;文…

計算機網絡期末復習(1)計算機網絡在信息時代對的作用 計算機網絡的定義和分類 三種交換方法

計算機網絡在信息時代扮演著至關重要的角色&#xff0c;它極大地改變了我們生活、工作和學習的方式。 計算機網絡在信息時代的作用 信息共享與傳播&#xff1a;計算機網絡使全球范圍內的信息快速共享成為可能&#xff0c;無論是新聞、學術研究還是娛樂內容&#xff0c;都可以…

初識 JavaScript

目錄 1. 什么是 JavaScript2. JS 引入方式2.1 內部引入方式2.2 外部引入方式 3. JS 中的注釋4. JS 中的結束符5. 輸入和輸出5.1 輸出5.2 輸入 6. 變量與常量6.1 變量的聲明6.2 變量的賦值6.3 常量 7. JS 中的數據類型8. JS 中的類型轉換8.1 隱式轉換8.2 顯式轉換 正文開始 1. …

Java 多線程相關面試題

1. ConcurrentHashMap的讀是否要加鎖&#xff0c;為什么? 讀操作沒有加鎖&#xff0c;目的是為了進一步降低鎖沖突的概率&#xff0c;為了保證讀到剛修改的數據&#xff0c;搭配了volatile 關鍵字&#xff1b; 2. 介紹下 ConcurrentHashMap 的鎖分段技術? 這個是 Java1.7 …

TP8 定時任務yzh52521/http-crontab 教程

官方文檔&#xff1a; https://www.thinkphp.cn/ext/36 源碼倉&#xff1a; http-crontab: 接口化秒級定時任務管理 GitHub - yuanzhihai/http-crontab: 接口化秒級定時任務管理 參考案例&#xff1a; http-crontab:Workerman ThinkPHP6 實現后臺可視化定時任務管理 htt…

深入解析Java注解機制:元注解、自定義處理器及其在框架中的妙用

1.注解簡介與作用 1.1 什么是注解&#xff08;Annotation&#xff09; 在Java中&#xff0c;注解是一種應用于類、方法、變量、參數和Java包等元素的標記。這些標記可以在編譯時、加載時甚至運行時被讀取&#xff0c;并執行相應的處理。通過使用注解&#xff0c;開發人員可以…

C++中的List

摘要 C 標準庫中的 std::list 是一種雙向鏈表容器&#xff0c;它允許在常數時間內進行插入和刪除操作&#xff0c;每個元素包含一個指向前一個和后一個元素的指針。這給我們開發提供了高效的插入和刪除操作。 引入頭文件 要使用 std::list&#xff0c;需要包含頭文件 <li…

鈑金件設計規范

(一&#xff09; 鈑金 1、鈑金的概念 鈑金&#xff08;sheet metal&#xff09;是針對金屬薄板&#xff08;厚度通常在6mm以下&#xff09;的 一種綜合冷加工工藝&#xff0c;包括沖裁、折彎、拉深、成形、鍛壓、鉚合等&#xff0c; 其顯著的特征是同一零件厚度一致。 2、鈑…

C語言屬于什么是編程語言:探索C語言的本質與特性

C語言屬于什么是編程語言&#xff1a;探索C語言的本質與特性 在編程領域&#xff0c;C語言無疑是一種重要的、廣泛應用的編程語言。但是&#xff0c;C語言究竟屬于哪一類編程語言&#xff1f;它又有哪些獨特的特性和價值&#xff1f;本文將從四個方面、五個方面、六個方面和七…

精通推薦算法8:Embedding表征學習 -- 總體架構

1 Embedding表征學習的總體架構 目前&#xff0c;推薦算法精排模型大多基于Embedding MLP范式&#xff0c;模型底層是Embedding層&#xff0c;作用是將高維稀疏的輸入特征轉換為低維稠密的特征向量&#xff0c;并實現一定的模糊查找能力。模型上層是MLP層&#xff0c;作用是對…

在鯤鵬服務器上安裝nginx

華為鯤鵬服務器采用華為自研cpu ARMv8架構,提供 Windows 和多個Linux 系統 常使用 CentOS 7.6 64bit with ARM Nginx 和 Apache 一樣都是一種 Web 服務器。是基于 REST 架構風格&#xff0c;以統一資源描述符URI 或者統一資源定位符URL 作為溝通依據&#xff0c;通過 HTTP 協議…

【C++進階】深入STL之string:掌握高效字符串處理的關鍵

&#x1f4dd;個人主頁&#x1f339;&#xff1a;Eternity._ ?收錄專欄?&#xff1a;C “ 登神長階 ” &#x1f921;往期回顧&#x1f921;&#xff1a;C模板入門 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; ?STL之string &#x1f4d2;1. STL基本…

前端(JS)對URL的編碼和解碼方式以及重要性——IE瀏覽器必須對中文URL進行編碼

工作記錄-前端——前端&#xff08;JS&#xff09;對URL的編碼和解碼方式以及重要性——IE瀏覽器必須對中文URL進行編碼 創作場景前端JS對URL的三種編碼和解碼方式1. escape 和 unescape2. encodeURI 和 decodeURI3. encodeURIComponent 和 decodeURIComponent 本文重點 創作場…

net語言編程:深入探索其奧秘與挑戰

net語言編程&#xff1a;深入探索其奧秘與挑戰 在當今信息化社會&#xff0c;編程語言如同構建數字世界的磚瓦&#xff0c;而net語言編程便是其中的一顆璀璨明珠。它以其獨特的魅力吸引著無數開發者&#xff0c;但同時也伴隨著一系列令人困惑和充滿挑戰的問題。本文將從四個方…