LeetCode 279完全平方數 139單詞拆分 卡碼網 56攜帶礦石資源(多重背包) | 代碼隨想錄25期訓練營day45

動態規劃算法6

LeetCode 279 完全平方數 2023.12.11

  • 題目鏈接
  • 代碼隨想錄講解[鏈接]
    在這里插入圖片描述
int numSquares(int n) {//1確定dp數組,其下標表示j的完全平方數的最少數量//3初始化,將dp[0]初始化為0,用于計算,其他值設為INT_MAX用于遞推公式求最小vector<int> dp(n+1,INT_MAX);dp[0] = 0;//2確定遞推公式,背包j值的最小完全平方數數量=min(背包值j-i*i的最小完全平方數量+1, 之前遍歷的dp[j])//因為是求具體值,而非排列數或組合數,所以先遍歷背包或者物品均可for (int i = 1; i <= sqrt(n); i++){for(int j = i*i; j <= n; j++){//背包j值的最小完全平方數數量=min(背包值j-i*i的最小完全平方數量+1, 之前遍歷的dp[j])dp[j] = min(dp[j-i*i]+1, dp[j]);}}return dp[n];
}

LeetCode 139 單詞拆分 2023.12.11

  • 題目鏈接
  • 代碼隨想錄講解[鏈接]
    在這里插入圖片描述
bool wordBreak(string s, vector<string>& wordDict) {//用于搜索函數搜索某一子串,string類型沒有find()函數,與循環體中注釋語句配合使用//unordered_set<string> wordSet(wordDict.begin(), wordDict.end());//1確定dp數組及下標含義,dp[i]表示(0,i)子字符串能否被拼接出//3初始化,dp[0]不能為false,否則后續都為false;其他值默認falsevector<bool> dp(s.size()+1, false);dp[0] = true;string cur;//2確定遞推公式,4確定遍歷順序//dp[i]表示(0,i)子字符串能否被拼接出,當(j,i)子字符串在字典中且(0,j)子字符串能被拼接出時dp[i]為true//該題為完全背包問題,且具有排列順序,所以先遍歷背包后遍歷物品for (int i = 1; i <= s.size(); i++){for(int j = 0; j <= i; j++){//背包容量為i,判斷(j,i)與(0,j)是否可拼接cur = s.substr(j, i-j);//if(wordSet.find(cur) != wordSet.end() && dp[j] == true)if(find(wordDict.begin(), wordDict.end(), cur) != wordDict.end() && dp[j] == true)dp[i] = true;}}return dp[s.size()];
}

卡碼網 56 攜帶礦石資源(多重背包) 2023.12.11

  • 題目鏈接
  • 代碼隨想錄講解[鏈接]
    在這里插入圖片描述
#include<bits/stdc++.h>
using namespace std;int main()
{//背包容量,礦石種類int bagSize, sortSize;cin >> bagSize >>sortSize;//每種礦石的重量、價值、及數量vector<int> weight(sortSize, 0);vector<int> price(sortSize, 0);vector<int> num(sortSize, 0);for(int i = 0; i < sortSize; i++)cin >> weight[i];for(int i = 0; i < sortSize; i++)cin >> price[i]; for(int i = 0; i < sortSize; i++)cin >> num[i];//1確定dp數組及下標含義,這里表示容量為i的背包能裝礦石的最大價值//3初始化,所有背包在沒放物品時默認價值為0vector<int> dp(bagSize+1, 0);//2確定遞推公式,4確定遍歷順序//遞推公式中,k表示第i中物品的個數,容量為j的背包最大價值=//max(上次遍歷物品的j容量背包最大價值,j-k*weight[i]容量大小的背包的最大價值+k個i物品的價值)for(int i = 0; i < sortSize; i++){for(int j = bagSize; j >= weight[i]; j--){for(int k = 1; k <= num[i] && j >= k*weight[i]; k++){dp[j] = max(dp[j-k*weight[i]] + k*price[i], dp[j]);}}}cout << dp[bagSize] << endl;return 0;
}

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

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

相關文章

物料分類帳概覽

原文地址&#xff1a;Overview: What is SAP Material Ledger? | SAP Blogs 物料分類賬是收集物料主數據存儲在物料主數據中的物料交易數據的工具。 物料分類帳使用此數據來計算價格以評估這些物料。 物料臺賬是實際成本核算的基礎。它允許以多種貨幣對材料庫存進行評估&am…

對象的生離死別

對象的生離死別 實驗介紹 在構建一個類時&#xff0c;一般情況下需要編寫構造函數、拷貝構造函數以及析構函數&#xff0c;這將直接影響程序的運行。而初始化列表是在調用構造函數時初始化參數的方式。 一個對象從實例化到銷毀的歷程&#xff1a; 知識點 內存分區構造函數exp…

java中什么是Spring Bean?

在Spring框架中&#xff0c;一個"Bean"是指由Spring IoC容器所管理的對象。這個對象可以是Java類的實例&#xff0c;也可以是引用其他對象的引用、集合或者是簡單類型。Spring Bean是應用中由IoC容器負責創建、裝配和管理的對象。 Spring中的Bean具有以下特征&#…

地牢手冊-3d

Description 你進入了一個3D的寶藏地宮中探尋到了寶藏&#xff0c;你可以找到走出地宮的路帶出寶藏&#xff0c;或者使用爐石空手回家。 地宮由立方體單位構成&#xff0c;立方體中不定會充滿巖石。向上、下、前、后、左、右移動一個單位需要一分鐘。你不能對角線移動并且地宮…

LabVIEW開發礦井排水監控系統

LabVIEW開發礦井排水監控系統 針對礦井水害對煤礦安全生產構成的威脅&#xff0c;設計了一種基于嵌入式PLC和LabVIEW的礦井排水監控系統。該系統結合了PLC的可靠控制與單片機的應用靈活性&#xff0c;有效克服了傳統排水方法中的不足&#xff0c;如測量不準確、效率低下等問題…

react相關hooks(二)

不寫性能優化的時候 const Child (props) > {console.log(child function is recalled)// count1改變時多次執行return (<div><h1>{ props.count2}</h1></div>) } function app () {const [count1.setCount1] useState(0)const [count2.setCount…

ESP8266模塊(CH340)零基礎實戰

USB數據線連接ESP8266模塊到電腦 先按住FLASH鍵,再按一下RST鍵,然后松開 此時電腦可識別出CH340 COM接口 CH340芯片廠商網址: wch.cn 傳輸比特率9600 win11自帶驅動 下載Arduino IDE

一文了解什么是Selenium自動化測試?

一、Selenium是什么&#xff1f; 用官網的一句話來講&#xff1a;Selenium automates browsers. Thats it&#xff01;簡單來講&#xff0c;Selenium是一個用于Web應用程序自動化測試工具。Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作瀏覽器一樣。支持的瀏…

【美賽指南】新手小白必備參賽指南

美賽指南 一、2024美賽安排二、題目類型三、選題建議四、美賽前期準備五、常用算法 一、2024美賽安排 報名截至時間&#xff1a;2024年 2月2日 00&#xff1a;00 比賽時間&#xff1a;2024年 2月2日 6&#xff1a;00- 2月6日 9&#xff1a;00 提交截至日期&#xff1a;2024年2…

嵌入式系統復習--概述

文章目錄 基本概念嵌入式系統的組成結構嵌入式操作系統嵌入式軟件開發環境硬件基礎簡介下一篇 基本概念 嵌入式計算機&#xff1a;把嵌入到對象體系中、實現對象體系智能化控制的帶有微控制器的計算機&#xff0c;稱作嵌入式計算機 嵌入式系統&#xff1a;以應用為中心&#…

harmonyOS學習筆記之@Provide裝飾器和@Consume裝飾器

Provide和Consume&#xff0c;應用于與后代組件的雙向數據同步&#xff0c;應用于狀態數據在多個層級之間傳遞的場景。不同于State/Link裝飾器修飾的 父子組件之間通過命名參數機制傳遞&#xff0c;Provide和Consume擺脫參數傳遞機制的束縛&#xff0c;實現跨層級傳遞。 其中Pr…

基于Java的招聘系統的設計與實現

末尾獲取源碼 開發語言&#xff1a;Java Java開發工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 數據庫&#xff1a;MySQL5.7和Navicat管理工具結合 服務器&#xff1a;Tomcat8.5 開發軟件&#xff1a;IDEA / Eclipse 是否Maven項目&#xff1a;是 目錄…

OWASP Web 安全測試指南 WSTG

Eoin Keary的前言 軟件不安全的問題可能是我們這個時代最重要的技術挑戰。支持業務、社交網絡等的 Web 應用程序的急劇興起只會加劇建立一種強大的方法來編寫和保護我們的 Internet、Web 應用程序和數據的要求。 在開放 Web 應用程序安全項目 &#xff08;OWASP&#xff09; 中…

HarmonyOS應用開發-手寫板

這是一個基于HarmonyOS做的一個手寫板應用&#xff0c;只需要簡單的幾十行代碼&#xff0c;就可以實現如下手寫功能以及清空畫布功能。 一、先上效果圖&#xff1a; 二、上代碼 Entry Component struct Index {//手寫路徑State pathCommands: string ;build() {Column() {//…

4-二分-索引二分-搜索旋轉排序數組 II

這是索引二分的第四篇算法&#xff0c;力扣鏈接 已知存在一個按非降序排列的整數數組 nums &#xff0c;數組中的值不必互不相同。 在傳遞給函數之前&#xff0c;nums 在預先未知的某個下標 k&#xff08;0 < k < nums.length&#xff09;上進行了 旋轉 &#xff0c;使數…

RocketMQ-源碼架構

源碼環境搭建 1、主要功能模塊 RocketMQ官方Git倉庫地址&#xff1a;GitHub - apache/rocketmq: Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications. RocketMQ的官方網站下載&#xff1a;下載 | R…

現在多種數據庫的讀寫模型對比

目錄 mongDB read write ES read write MySql write 總結 mongDB 3.0 版本后的WiredTiger存儲引擎 read 1. 應用通過driver 發起Buffer I/O讀操作&#xff0c;由操作系統將磁盤數據頁加載到文件系統的頁緩存區 2. 引擎層讀取頁緩沖區的數據&#xff0c;進行解壓后放…

C++STL算法庫中謂詞的使用

什么是c的謂詞 謂詞概念&#xff1a; 謂詞函數是一個判斷式&#xff0c;一個返回bool值的函數或者仿函數&#xff0c;有幾個入參就是幾元謂詞。一般做一個函數的參數使用【引用自百度百科】。 常見的可以作為謂詞的東西&#xff1a;函數、函數指針、函數對象、lambda表達式&am…

2023 年浙江省職業院校技能大賽信息安全管理與評估賽項規程

*2023 年浙江省職業院校技能大賽“高職組”* *“信息安全管理與評估”賽項規程* *一、賽項名稱* 賽項名稱&#xff1a;信息安全管理與評估 英文名稱&#xff1a;Information Security Management and Evaluation 賽項組別&#xff1a;高職 賽項歸屬產業&#xff1a;電子信…

熱電廠發電機組常見故障及預測性維護方法

熱電廠的發電機組是關鍵的能源生產設備&#xff0c;在電力供應中扮演著關鍵角色。但經過長期運行和高負荷工作&#xff0c;一旦發生故障&#xff0c;可能導致停機、設備損壞甚至引發嚴重事故。因此&#xff0c;實施有效的預測性維護方法對于確保發電機組的穩定運行至關重要。本…