代碼隨想錄算法訓練營第三十八天|動態規劃part6(完全背包2)

322. 零錢兌換

題目鏈接: 322. 零錢兌換 - 力扣(LeetCode)
文章講解: 代碼隨想錄

思路:

確定遞推公式:

dp[j]=min(dp[j],dp[j-coins[i]]+1);?

由于是完全背包 ,所以遍歷順序是正序

還存在另一個問題 沒有任何一種硬幣組合能組成總金額

其實也就是沒更新 dp?

class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<double>dp2(amount+1,0);dp2[0]=0;for(int i=0;i<coins.size();i++){for(int j=coins[i];j<=amount;j++){dp2[j]=max(dp2[j],dp2[j-coins[i]]+coins[i]);}}if(dp2[amount]!=amount)return -1;vector<int>dp(amount+1,INT_MAX-2);dp[0]=0;for(int i=0;i<coins.size();i++){for(int j=coins[i];j<=amount;j++){dp[j]=min(dp[j],dp[j-coins[i]]+1);}}return dp[amount];}
};

需要注意的是:完全背包的兩層for循環強調先后順序

但是排列 或組合問題是強調先后順序的

279.完全平方數

題目鏈接:279. 完全平方數 - 力扣(LeetCode)

文章講解:代碼隨想錄

思路:

這道題跟上題幾乎一樣

class Solution {
public:int numSquares(int n) {vector<int>nums;for(int i=1;i<=sqrt(n);i++){nums.push_back(i*i);}vector<int>dp(n+1,INT_MAX);dp[0]=0;for(int i=0;i<nums.size();i++){for(int j=nums[i];j<=n;j++){dp[j]=min(dp[j],dp[j-nums[i]]+1);}}return dp[n];}
};

139.單詞拆分

題目鏈接:139. 單詞拆分 - 力扣(LeetCode)

文章講解:代碼隨想錄

?思路:

這道題可以理解為一個完全背包問題

那么需要考慮 背包容量 物品?

物品就是單詞

背包容量呢 就是字符串s的長度

完全背包 那么是排列問題還是組合問題 這是排列問題 所以先遍歷背包

dp[i]表示前i個字符能被分割

字符串有函數s.substr(i,n)表示從位置i開始分割長度為n的字符串

注意遞推公式:

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string>myset(wordDict.begin(),wordDict.end());vector<bool>dp(s.size()+1,false);dp[0]=true;for(int i=1;i<dp.size();i++){   for(int j=0;j<i;j++){string word=s.substr(j,i-j);if(myset.find(word)!=myset.end()&&dp[j]==true) {dp[i]=true;}}}return dp[s.size()];}
};

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

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

相關文章

使用 ECharts GL 實現交互式 3D 餅圖:技術解析與實踐

一、效果概覽 本文基于 Vue 3 和 ECharts GL&#xff0c;實現了一個具有以下特性的 3D 餅圖&#xff1a; 立體視覺效果&#xff1a;通過參數方程構建 3D 扇形與底座動態交互&#xff1a;支持點擊選中&#xff08;位移效果&#xff09;和懸停高亮&#xff08;放大效果&#xff…

Transformer Decoder-Only 參數量計算

Transformer 的 Decoder-Only 架構&#xff08;如 GPT 系列模型&#xff09;是當前大語言模型的主流架構&#xff0c;其參數量主要由以下幾個部分組成&#xff1a; 嵌入層&#xff08;Embedding Layer&#xff09;自注意力層&#xff08;Self-Attention Layers&#xff09;前饋…

(自用)Java學習-5.8(總結,springboot)

一、MySQL 數據庫 表關系 一對一、一對多、多對多關系設計外鍵約束與級聯操作 DML 操作 INSERT INTO table VALUES(...) DELETE FROM table WHERE... UPDATE table SET colval WHERE...DQL 查詢 基礎查詢&#xff1a;SELECT * FROM table WHERE...聚合函數&#xff1a;COUNT()…

【日擼 Java 三百行】Day 11(順序表(一))

目錄 Day 11&#xff1a;順序表&#xff08;一&#xff09; 一、關于順序表 二、關于面向對象 三、代碼模塊分析 1. 順序表的屬性 2. 順序表的方法 四、代碼及測試 拓展&#xff1a; 小結 Day 11&#xff1a;順序表&#xff08;一&#xff09; Task&#xff1a; 在《數…

Spring Boot動態配置修改全攻略

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 無需重啟應用&#xff0c;實時更新配置的終極指南 在微服務架構中&#xff0c;動態配置管理是提高系統靈活性的關鍵技術。本文將通過4種主流方案&#xff0c…

精益數據分析(55/126):雙邊市場模式的挑戰、策略與創業階段關聯

精益數據分析&#xff08;55/126&#xff09;&#xff1a;雙邊市場模式的挑戰、策略與創業階段關聯 在創業和數據分析的學習旅程中&#xff0c;我們持續探索不同商業模式的奧秘。今天&#xff0c;依舊懷揣著與大家共同進步的想法&#xff0c;深入研讀《精益數據分析》&#xf…

linux內核pinctrl/gpio子系統驅動筆記

目錄 一、簡單介紹二、主要源碼文件和目錄gpio子系統pinctrl子系統兩個子系統之間的關系設備樹例子 三、主要的數據結構gpio子系統pinctrl子系統 四、驅動初始化流程五、難點說明 一、簡單介紹 GPIO子系統: Linux GPIO子系統是Linux內核中負責處理GPIO&#xff08;通用輸入輸出…

Vue 2 項目中配置 Tailwind CSS、Font Awesome和daisyUI

Vue 2 項目中配置 Tailwind CSS 和 安裝 daisyUI 首先重點注意&#xff0c;Vue2中安裝Tailwind和daisyui一定要注意版本。 最佳版本 使用 Vue 2 TailwindCSS v2 DaisyUI v1 的兼容版本 "tailwindcss": "npm:tailwindcss/postcss7-compat^2.2.17", &q…

5.11 - 5.12 JDBC+Mybatis+StringBoot項目配置文件

JDBC&#xff1a; 預編譯SQL優點&#xff1a;安全&#xff0c;性能更高。 在cmd里面輸入java-jar就可以運行jar包。 Mybatis&#xff1a; 持久層框架。用于簡化JDBC的開發。 數據庫連接池里面放置的是一個一個Connection連接對象。&#xff08;連接池中的連接可以復用&#…

探索科技的前沿動態:科技愛好者周刊

探索科技的前沿動態:科技愛好者周刊 在信息爆炸的時代,我們每時每刻都被新技術、新理念包圍。而如何在這紛繁復雜的信息中找到對自己有價值的內容,成了一大挑戰。今天,我們要介紹的是一個寶貴的資源——科技愛好者周刊,它致力于為科技愛好者提供優質的科技資訊,每周五發…

Vue3 官方宣布淘汰 Axios,擁抱Alova.js

過去十年,Axios 憑借其簡潔的API設計和瀏覽器/Node.js雙環境支持,成為前端開發者的首選請求庫。但隨著現代前端框架的演進和工程化需求的升級,Alova.js 以更輕量、更智能、更符合現代開發范式的姿態登場。 一、Axios的痛點 1,冗余的適配邏輯,比如Axios的通用配置(但實際…

Spring AI 與 Groq 的深度集成:解鎖高效 AI 推理新體驗

Spring AI 與 Groq 的深度集成&#xff1a;解鎖高效 AI 推理新體驗 前言 在人工智能飛速發展的當下&#xff0c;AI 推理的效率和性能成為開發者關注的焦點。Groq 作為一款基于 LPU? 的超快速 AI 推理引擎&#xff0c;憑借其強大的性能&#xff0c;能夠支持各類 AI 模型&…

風車OVF鏡像:解放AI開發限制的Ubuntu精簡系統

風車OVF鏡像&#xff1a;解放AI開發限制的Ubuntu精簡系統 AI白嫖續杯一站式-風車ovf AI白嫖續杯一站式解決-風車ovf 前言 作為一名AI開發者&#xff0c;我經常在Windows和Linux環境之間切換開發。然而&#xff0c;Windows平臺上的各種免費版限制逐漸成為我工作效率的瓶頸。在尋…

第十部分:文件與動靜態庫

目錄 1、文件系統 1.1、磁盤 1.2、文件系統 1.3、文件的增刪查改 2、軟硬鏈接 2.1、軟鏈接 2.2、硬鏈接 3、物理內存與文件 4、動靜態庫 4.1、靜態庫 4.1.1、靜態庫的制作 4.1.2、靜態庫的使用 4.2、動態庫 4.2.1、動態庫的制作 4.2.2、動態庫的使用 4.3、動靜…

android14優化ntp時間同步

簡介 網絡時間協議NTP&#xff08;Network Time Protocol&#xff09;是TCP/IP協議族里面的一個應用層協議&#xff0c;用來使客戶端和服務器之間進行時鐘同步&#xff0c;提供高精準度的時間校正。 當機器的ntp時間同步出現問題時&#xff0c;可以從ntp配置方面進行優化&…

ZYNQ筆記(二十):Clocking Wizard 動態配置

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任務&#xff1a;ZYNQ PS端 通過 AXI4Lite 接口配置 Clocking Wizard IP核輸出時鐘頻率 目錄 一、介紹 二、寄存器定義 三、配置 四、PS端代碼 一、介紹 Xilinx 的 Clock Wizard IP核 用于在 FPGA 中生成和管理…

服務器帶寬基礎知識

服務器帶寬基礎知識詳解 一、帶寬的定義與基本概念 服務器帶寬&#xff08;Bandwidth&#xff09;是指服務器與互聯網之間在單位時間內傳輸數據的能力&#xff0c;通常以 Mbps&#xff08;兆比特每秒&#xff09; 或 Gbps&#xff08;吉比特每秒&#xff09; 為單位衡量。它決…

OpenCV CUDA 模塊中在 GPU 上對圖像或矩陣進行 翻轉(鏡像)操作的一個函數 flip()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::cuda::flip 是 OpenCV 的 CUDA 模塊中的一個函數&#xff0c;用于在 GPU 上對圖像或矩陣進行 翻轉&#xff08;鏡像&#xff09;操作。它類似…

shell腳本實現docker運行鏡像掛載

根據本文腳本展示內容可以實現多種容器掛載 演示nginx掛載 創建掛載目錄 mkdir -p /data/nginx/{conf,html,logs} 參數含義&#xff1a; docker run -d --name 給運行的鏡像取名 -v /宿主機/目錄:/容器內/目錄 鏡像名 示例&#xff1a; docker啟動nginx&#xff08;當…

WiseAD:基于視覺-語言模型的知識增強型端到端自動駕駛——論文閱讀

《WiseAD: Knowledge Augmented End-to-End Autonomous Driving with Vision-Language Model》2024年12月發表&#xff0c;來自新加坡國立和浙大的論文。 在快速發展的視覺語言模型&#xff08;VLM&#xff09;中&#xff0c;一般人類知識和令人印象深刻的邏輯推理能力的出現&a…