代碼隨想錄第38天|動態規劃

1049. 最后一塊石頭的重量 II

在這里插入圖片描述
在這里插入圖片描述

參考

備注: 當物體容量也等同于價值時, 01背包問題的含義則是利用好最大的背包容量sum/2, 使得結果盡可能的接近或者小于 sum/2
等價: 盡可能的平分成相同的兩堆, 其差則為結果, 比如 (a+b+c)-d, (a+c)-(b+d) , 最終的結果是一堆減去另外一堆的和, 問題則轉換成01背包

在這里插入圖片描述

class Solution {
public:int lastStoneWeightII(vector<int>& stones) {int sum = 0;for (int i = 0; i < stones.size(); i++) {sum += stones[i];}vector<int> dp(sum / 2 + 1, 0);for (int i = 0; i < stones.size(); i++) {for (int j = sum / 2; j >= 0; j--) {if (j - stones[i] >= 0) {dp[j] = max(dp[j], dp[j - stones[i]] + stones[i]);}}}return (sum - dp[sum / 2]) - dp[sum / 2];}
};

494. 目標和

在這里插入圖片描述
在這里插入圖片描述
回溯法會超時

轉換成01背包問題:

  • A + B = sum
  • A - B = target
  • A = (target + sum) / 2
  • B = (sum - target) / 2
    其中A相當于weigh, nums[i]相當于價值
    當 A = (target + sum) / 2 向下取整時, 說明不存在結果
    當 abs(target) > sum 時不存在

五部曲:

  1. dp[j]: 填滿j(包括j)這么大容積的包,有dp[j]種方法 (假設A為容量)
  2. 在這里插入圖片描述
  3. 初始化: dp[0] = 1
class Solution {
public:int findTargetSumWays(vector<int>& nums, int target) {int sum = 0;for (int i = 0; i < nums.size(); i++) {sum += nums[i];}int A = (target + sum) / 2;if ((target + sum) % 2) return 0;if (abs(target) > sum) return 0;vector<int>dp(A + 1, 0);dp[0] = 1;for (int i = 0; i < nums.size(); i++) {for (int j = A; j >= nums[i]; j--) {dp[j] += dp[j - nums[i]];}}return dp[A];}
};

474.一和零

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

Deep-LIBRA:一種用于可靠量化乳腺密度的人工智能方法,并在乳腺癌風險評估中進行了獨立驗證| 文獻速遞-深度學習自動化疾病檢查

Title 題目 Deep-LIBRA: An artificial-intelligence method for robust quantification of breast density with independent validation in breast cancer risk assessment Deep-LIBRA&#xff1a;一種用于可靠量化乳腺密度的人工智能方法&#xff0c;并在乳腺癌風險評估中…

【LeetCode】每日一題:相交鏈表

給你兩個單鏈表的頭節點 headA 和 headB &#xff0c;請你找出并返回兩個單鏈表相交的起始節點。如果兩個鏈表不存在相交節點&#xff0c;返回 null 。 圖示兩個鏈表在節點 c1 開始相交&#xff1a; 題目數據 保證 整個鏈式結構中不存在環。 注意&#xff0c;函數返回結果后&am…

7/1 uart

uart4.c #include "uart4.h"//UART4_RX > PB2 //UART4_TX > PG11char rebuf[51] {0}; //rcc/gpio/uart4初始化 void hal_uart4_init() {/********RCC章節初始化*******///1.使能GPIOB組控制器 MP_AHB4ENSETR[1] 1RCC->MP_AHB4ENSETR | (0x1 << 1)…

【C++11:右值引用,列表初始化】

統一列表初始化&#xff1a; 構造函數的函數名與函數體之間增加一個列表&#xff0c;用于對成員初始化 在實例化對象時&#xff0c;支持單/多參數的隱式轉化&#xff0c;同時也可以省略符號&#xff0c;讓代碼更簡潔 右值的引用 左值&#xff1a; 左值與右值的重要區別就是能…

全國產化飛騰模塊BIOS下修復系統啟動文件

1、背景介紹 全國產飛騰模塊采用麒麟信安操作系統&#xff0c;當系統下面的grub.cfg文件被用戶誤操作導致無法啟動時&#xff0c;可以在BIOS下通過U盤中備份的grub.cfg替換硬盤上原來的grub.cfg文件&#xff0c;從而實現啟動。 2、操作步驟 首先進入BIOS命令行模式&#xff…

Meta低頭,庫克認錯,XR回歸第一性原理

圖片&#xff5c;Photo by Maxim Hopman on Unsplash ©自象限原創 作者丨羅輯 2024年&#xff0c;XR的故事應該怎么講&#xff1f; 如果從數據上看&#xff0c;這應該是個沉重的話題。 根據 IDC 報告&#xff0c;2023 年全球 VR 市場出貨量下滑了 10.7%。2024 年第一…

【必看】賣慘營銷

經常賣慘的人到底是什么心理&#xff1f; Berry Ni同學說&#xff1a; 吸引別人的注意力。想要得到關注。 讓你降低對他的期待。 讓你能夠在他做好一件小事的情況下就表揚他。 控制你對他的想法認知。 ? 浪矢心理同學說&#xff1a; 1&#xff0c;求關注。他覺得買慘有好處&…

【Excel、RStudio計算T檢測的具體操作步驟】

目錄 一、基礎知識1.1 顯著性檢驗1.2 等方差T檢驗、異方差T檢驗1.3 單尾p、雙尾p1.3.1 檢驗目的不同1.3.2 用法不同1.3.3 如何選擇 二、Excel2.1 統計分析工具2.1.1 添加統計分析工具2.1.2 數據分析 2.2 公式 -> 插入函數 -> T.TEST 三、RStudio 一、基礎知識 參考: 1.…

Gradle學習-4 創建二進制插件工程

二進制插件工程創建有兩種方式&#xff1a; 創建獨立的工程&#xff0c;調試的時候&#xff0c;需要手動發布成一個二進制插件jar包&#xff0c;給其他工程里面引用&#xff0c;進行功能測試。這種方式是比較麻煩的。創建buildSrc子工程&#xff0c;它是一個大工程中的子工程&…

開源網安榮獲第一新聲“2024中國最佳信創安全廠商”,信創實力獲認可

近日&#xff0c;由權威機構【第一新聲】與【天眼查】聯合發起的“2024中國最佳信創廠商系列榜單”評選中&#xff0c;開源網安以其技術創新能力和在信創領域持續投入&#xff0c;成功入選“中國最佳信創安全廠商”。 開源網安&#xff0c;作為軟件安全領域創領者&#xff0c;自…

數據結構 - C/C++ - 棧

目錄 結構特性 結構實現 結構容器 結構設計 順序棧 鏈式棧 結構特性 棧(stack)是線性表的一種形式&#xff0c;限定僅在表的一端進行插入或者刪除的操作。 棧頂 - 表中允許插入、刪除的一端稱為棧頂(top)&#xff0c;棧頂位置是可以發生變化的。 插入 - 進棧、入棧、壓棧…

數據結構預科

在堆區申請兩個長度為32的空間&#xff0c;實現兩個字符串的比較【非庫函數實現】 要求&#xff1a; 1> 定義函數&#xff0c;在對區申請空間&#xff0c;兩個申請&#xff0c;主函數需要調用2次 2> 定義函數&#xff0c;實現字符串的輸入&#xff0c;void input(char …

31 C++11

本節目標 c11簡介列表初始化變量類型推導范圍for循環新增加容器右值新的類功能可變參數模板 1. c11簡介 在2003年標準委員會提交了一份計數勘誤表&#xff08;簡稱TC1&#xff09;&#xff0c;使得c03這個名字已經取代了c98稱為c11之前的最新的c標準名稱。不過由于c03&#x…

JAVA學習筆記DAY12——MySQL基礎

文章目錄 數據庫概述為什么要使用數據庫相關概念關系型和非關系型RDBMS非RDBMS - NoSQL MySQL圖形化管理工具Navicat SQL前后端環境nginx 反向代理MD5加密 數據庫概述 為什么要使用數據庫 持久化&#xff1a;指把數據保存到可掉電存儲設備中&#xff0c;一般指將內存中的數據…

詳解歸一化、標準化、正則化以及batch normalization

文章目錄 what(是什么)where&#xff08;用在哪&#xff09;How&#xff08;如何用&&原理&#xff09;歸一化實現方式原理示例說明 標準化實現方式原理示例說明 正則化實現方式原理作用 Batch Normalizationpytorch中的batch normalization原理BN的作用 歸一化、標準化…

代理設計模式和裝飾器設計模式的區別

代理設計模式: 作用:為目標(原始對象)增加功能(額外功能,拓展功能) 三種經典應用場景: 1&#xff1a;給原始對象增加額外功能(spring添加事務,Mybatis通過代理實現緩存功能等等) 2&#xff1a;遠程代理&#xff08;網絡通信&#xff0c;輸出傳輸&#xff08;RPC&#xff0c;D…

【TB作品】智能臺燈,ATMEGA16單片機,Proteus仿真

智能臺燈 1 adc檢測光強光敏電阻 顯示電壓 2 光強太高 也就是高于臨界值 就關閉小燈 3 光強太低 也就是低于臨界值 就打開小燈 3 按鍵修改臨界值 顯示 實驗報告&#xff1a;基于ATMEGA16單片機的智能臺燈設計與Proteus仿真 1. 實驗背景 智能臺燈是一種能夠根據環境光強自動調…

代碼隨想錄第40天|動態規劃

完全背包 完全背包物品可以無限使用 01背包核心代碼 01背包中的二維dp數組的兩個for遍歷可顛倒, 而一維dp數組的一定先遍歷物品再遍歷背包容量狀態轉移方程(背包容量一定為遞減) 完全背包核心代碼 (只在完全背包中一維dp數組嵌套順序可顛倒, 實際題目需要確定遍歷順序) 狀…

【高考志愿】建筑學

目錄 一、專業介紹 1.1 專業定義 1.2 專業培養目標 1.3 核心課程 二、就業方向和前景 2.1 就業方向 2.2 專業前景 三、報考注意 四、行業趨勢與未來展望 五、建筑學專業排名 一、專業介紹 1.1 專業定義 建筑學&#xff0c;這一充滿藝術與科技魅力的學科&#xff0c;…

天線 有源 無源 參數

無源測試駐波比VSWR/回波損耗(Return Loss)≤2效率≥50%輸入阻抗50R10%增益天線方向圖3D場強圖方向性 有源測試 OTA 傳導測試&#xff1a;發射功率傳導測試&#xff1a;接收靈敏度總輻射功率TRP(Total Radiated Power)≥發射功率減3dB總接收靈敏度TIS&#xff08;Total Isotrop…