Day38:518.零錢兌換II、377. 組合總和 Ⅳ

文章目錄

    • 518.零錢兌換II
      • 思路
      • 代碼實現
    • 377. 組合總和 Ⅳ
      • 思路
      • 代碼實現


518.零錢兌換II

題目鏈接

思路

  1. 確定dp數組(dp table)以及下標的含義
    dp[j]:組合元素和為j的組合方式
  2. 確定遞推公式
    題目不是選取最優解,而是求路徑總和,則取不同數字的零錢coin[i]時都有dp[j-coin[i]]種方法,
    則dp[j]=dp[j-coin[i]]
  3. dp數組如何初始化
    后臺題目要求是dp[0]=1,這里題目沒給出準確的說法
  4. 確定遍歷順序
    外層for循環從前往后,內層for循環也是從前往后
    這和01背包完全不同,根本原因就是這里的錢每個面額的數量都沒有限制,所以可以重復選取
    但外層for循環和內存for循環不可以調換,因為現在是先遍歷錢,錢是不會出現{5,1}和{1,5}這樣的重復現象的;但如果錢變成內層for循環的話,就可以重復選取,這就是后面那道題的排列問題
  5. 舉例推導dp數組

代碼實現

class Solution {
public:int change(int amount, vector<int>& coins) {vector<int> dp(10010,0);dp[0]=1;for(int i=0;i<coins.size();i++){for(int j=coins[i];j<=amount;j++){dp[j]+=dp[j-coins[i]];}}return dp[amount];}
};

377. 組合總和 Ⅳ

題目鏈接

思路

這道題就是排列問題

  1. 確定dp數組(dp table)以及下標的含義
    dp[j]:組合元素和為j的組合方式
  2. 確定遞推公式
    題目不是選取最優解,而是求路徑總和,則取不同數字的零錢coin[j]時都有dp[i-coin[j]]種方法,
    則dp[i]=dp[i-coin[j]]
  3. dp數組如何初始化
    后臺題目要求是dp[0]=1,這里題目沒給出準確的說法
  4. 確定遍歷順序
    外層for循環從前往后,內層for循環也是從前往后
    這就是排列問題,{5,1}和{1,5}都是正確結果。而錢變成內層for循環的話,就可以重復選取。先遍歷背包容量,當容量允許裝入背包,就可以累加記錄方法種類,代碼實現和上一道題差不多,只是換了內外層的遍歷
  5. 舉例推導dp數組

這里有一個dp[i]<INT_MAX-dp[i-nums[j]]操作,因為測試數據比較大時累加結果可能超過了INT_MAX,為了保證數據不溢出,就需要判斷dp[i]+dp[i-nums[j]]<INT_MAX是否成立,而dp[i]+dp[i-nums[j]]可能還是會溢出,所以只能用減法寫

代碼實現

class Solution {
public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(10010,0);dp[0]=1;for(int i=0;i<=target;i++){for(int j=0;j<nums.size();j++){if(i>=nums[j]&&dp[i]<INT_MAX-dp[i-nums[j]])dp[i]+=dp[i-nums[j]];}}return dp[target];}
};

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

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

相關文章

【運動規劃】191 自適應跟蹤kinodynamicrrt的路徑

分層法&#xff1a; two layer approach 自適應控制&#xff0c;跟隨軌跡。運動規劃&#xff1a;擴展自由空間&#xff08;基于速度約束縮小自由空間&#xff09;為控制部分留余量&#xff0c;確保安全。 控制設計&#xff1a; 考慮平移和旋轉&#xff0c;速度環控制&#xff…

銀河麒麟安裝Docker

# 配置阿里云 Centos8 鏡像源&#xff0c;需要額外的一些依賴&#xff0c;而這些依賴在麒麟官方的源里面是沒有的 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 配置阿里云 docker 鏡像源 sudo yum-config-manager --add-r…

【23真題】Top3!最高148分,數二英二!

今天分享的是23年西安交通大學815的信號與系統數字信號處理試題及解析。眾所周知&#xff0c;Top3一共有10所&#xff0c;其中就包括了西安交大&#xff01; 本套試卷難度分析&#xff1a;平均分為117-128分&#xff0c;最高分為148分&#xff01;22年西安交大909/815的真題我…

2022-4-11 南科大現代控制與最優估計

CLEAR_LAB B站視頻 矩陣的分塊矩陣操作 diagonal 對角陣 identity matrix 單位矩陣 矩陣克羅內克積

【LeetCode二叉樹進階題目】606. 根據二叉樹創建字符串,102. 二叉樹的層序遍歷,107. 二叉樹的層序遍歷 II

二叉樹進階題目 606. 根據二叉樹創建字符串解題思路及實現 102. 二叉樹的層序遍歷解題思路及實現 107. 二叉樹的層序遍歷 II解題思路及實現 606. 根據二叉樹創建字符串 描述 給你二叉樹的根節點 root &#xff0c;請你采用前序遍歷的方式&#xff0c;將二叉樹轉化為一個由括號…

Android、ESP32、ESP8266的mqtt通信

Android activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http:/…

Python dbm庫:利用鍵值對存儲數據

更多Python學習內容&#xff1a;ipengtao.com 大家好&#xff0c;我是濤哥&#xff0c;今天為大家分享 Python dbm庫&#xff1a;利用鍵值對存儲數據&#xff0c;文章6000字&#xff0c;閱讀大約20分鐘&#xff0c;大家enjoy~~ Python中的dbm模塊提供了一種輕量級的數據庫管理工…

【ARM 嵌入式 編譯系列 2.3 -- GCC 中指定 ARMv8-M 的 Thumb 指令集參數詳細介紹】

請閱讀【ARM GCC 編譯專欄導讀】 上篇文章:【ARM 嵌入式 編譯系列 2.2 – 如何在Makefile 中添加編譯時間 | 編譯作者| 編譯 git id】 下篇文章:【ARM 嵌入式 C 入門及漸進 3 – GCC attribute((weak)) 弱符號使用】 文章目錄 ARMv8-M 架構Thumb 指令集ARMv8-M 與 Thumb-mth…

call ,apply,bind 及異同點

目錄 1、call 2、apply 3、bind 4、三者異同 1、call call 函數調用 &#xff1a;1、讓函數執行 2、改變函數this指向 參數&#xff1a; 第一個參數是this指 向&#xff0c;第二個參數開始傳遞給函數的實參 函數名.call&#xff08;this指…

redis---主從復制及哨兵模式(高可用)

主從復制 主從復制&#xff1a;主從復制是redis實現高可用的基礎&#xff0c;哨兵模式和集群都是在主從復制的基礎之上實現高可用。 主從負責的工作原理 1、主節點&#xff08;master&#xff09; 從節點&#xff08;slave&#xff09;組成&#xff0c;數據復制是單向的&a…

VUE+element可以為空不為空時只能為(正整數和0)的驗證

rule{ 變量: [ { required: true, validator: validateparamPosition, trigger: blur }] } ??????? ??????? ??????? var validateparamPosition (rule, value, callback) > { if (!value) { //先判斷空可以過 ca…

【HarmonyOS】JSON格式化解析Map數據失敗

【關鍵字】 數據轉換、JSON.stringify、Object.fromEntries 【問題背景】 將數組轉換成Map對象&#xff0c;然后調用let str JSON.stringify(newMap)&#xff0c;將Map轉換成字符串&#xff0c;轉換出來的結果是{} 問題代碼&#xff1a; let data [{ key: where, value: …

python數據結構與算法-13_高級排序算法-快速排序

快速排序 快速排序名字可不是蓋的&#xff0c;很多程序語言標準庫實現的內置排序都有它的身影&#xff0c;我們就直奔主題吧。 和歸并排序一樣&#xff0c;快排也是一種分而治之(divide and conquer)的策略。歸并排序把數組遞歸成只有單個元素的數組&#xff0c;之后再不斷兩兩…

docker安裝mysql掛著目錄和mysql備份和恢復

第一&#xff0c;鏡像拉取&#xff0c;運行鏡像并掛載目錄&#xff0c;嘗試掛bin下&#xff0c;啟動不了&#xff0c;不知為啥 docker run --privilegedtrue -itd --namevmysql -p 3306:3306 -v /home/vmysql:/home/vmysql -e MYSQL_ROOT_PASSWORD123456 mysql&#xff08;圖…

Nancy (二)

最近做CS項目&#xff0c;一直在使用TCPSocket 做數據傳輸&#xff0c;不太爽&#xff0c;砸門可是多年BS的開發&#xff0c;這樣開發接口出去比較費勁&#xff0c;但是又不想用asp.net mvc webapi,要按照IIS&#xff0c;有些工控機的系統環境也是很尷尬的&#xff0c;那么也可…

用好說 AI 玩轉奧特曼表情包,居然還能和他們聊個天

你喜歡奧特曼嗎&#xff1f;你相信光嗎&#xff1f; 如果你已經追完了特攝劇、刷完了大電影、用濫了那幾個表情包&#xff0c;那不如來試試用 AI 給自己整點活兒新 “物料”。 不管是和奧特曼 “面對面” 聊天還是 “無中生有” 表情包&#xff0c;AI 都能做&#xff01; (※…

Python 使用SQLAlchemy數據庫模塊

SQLAlchemy 是用Python編程語言開發的一個開源項目&#xff0c;它提供了SQL工具包和ORM對象關系映射工具&#xff0c;使用MIT許可證發行&#xff0c;SQLAlchemy 提供高效和高性能的數據庫訪問&#xff0c;實現了完整的企業級持久模型。 ORM&#xff08;對象關系映射&#xff0…

MySQL For Windows的下載與安裝

教程https://www.bilibili.com/read/cv26499785/ windowse下載地址https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.35.0.msi

代理模式 (Proxy Pattern)

定義&#xff1a; 代理模式&#xff08;Proxy Pattern&#xff09;是一種結構型設計模式&#xff0c;它通過提供一個代理&#xff08;或稱代表&#xff09;對象來控制對另一個對象的訪問。這種模式創建了一個代理對象&#xff0c;用來代表實際對象的功能&#xff0c;從而可以在…

spring boot 熱部署

相信小伙伴們在日常的開發中&#xff0c;調試代碼時&#xff0c;免不了經常修改代碼&#xff0c;這個時候&#xff0c;為了驗證效果&#xff0c;必須要重啟 Spring Boot 應用。 頻繁地重啟應用&#xff0c;導致開發效率降低&#xff0c;加班隨之而來。有沒有什么辦法&#xff0…