第四十六天 | 279.完全平方數 139.單詞拆分

題目:279.完全平方數

本題比較簡單,幾天沒做背包但是這道題很快ac了

嘗試解答:

????????題目類型:給定一個背包容量,求裝滿背包的最少物品數,且每個物品可以放多次,完全背包

? ? ? ??1.dp[j]數組含義:裝滿容量為 j?的背包所需要的物品數為dp[j]?

? ? ? ? 2.狀態轉移方程:dp[j] = min(dp[j], dp[j - i * i] + 1)

? ? ? ? 3.初始化:dp[0] =??0(這個是通過測試集試出來的),0之外的位置初始化為最大值,防止將答案覆蓋

? ? ? ? 4.遍歷順序:必須先遍歷背包,在物品的終止條件中會用到背包容量作為限制。如果先遍歷物品,那不知道for在哪里終止。
? ? ? ? 5.打印dp

class Solution {
public:int numSquares(int n) {vector<int> dp(n + 1, INT_MAX);      //0之外的位置初始化為最大值,防止將答案覆蓋dp[0] = 0;for(int j = 0; j <= n; j++){     //先背包后物品for(int i = 1; i <= n && i * i <= j; i++){     //for循環的判斷條件里要多一條平方數小于背包容量,防止訪問越界dp[j] = min(dp[j], dp[j - i * i] + 1);    //統計方法數}}return dp[n];}
};

其實先遍歷物品后遍歷背包也可以,只不過要加上一個防止訪問越界的判斷條件if

題目:139.單詞拆分

嘗試:失敗

這道題相當于是判斷給定容量的背包能不能裝滿。背包總容量s.size()

這個背包的總容量為s.size(),如果到最后背包內所裝物品的數量為s.size(),就返回true,否則返回false.

1.dp[j]含義:容量為j的背包所裝物品的數目

2.動態轉移方程:如果字典里有[i],dp[j] = dp[j - ] + 1;

3.初始化:dp[0] =?

4.遍歷順序:先后順序沒有影響,背包的順序從小到大

正解:

本題應該是求排列數類型

1.dp數組含義:字符串的長度為 i,能否能裝滿

2.遞推公式:截取[i , j]這一段的s,判斷這個子串是否存在于字典中,先將數組字典轉化為set,set中查詢的函數為find()。if([i,j] && dp[i] == true) 則 dp[j] == true; else dp[j] == false

3.初始化:dp[0] = true,非零下標都為false

4.遍歷順序:求排列數,先遍歷背包再物品

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, false);dp[0] = true;for(int j = 0; j <= s.size(); j++){      //先背包for(int i = 0; i <= j; i++){string word = s.substr(i, j - i);     //將s進行剪切賦值給str//substr(起始位置,截取的個數)if(wordSet.find(word) != wordSet.end() && dp[i] == true){dp[j] = true;}}}return dp[s.size()];}
};

[易錯]:if的判斷條件里應該是dp[i] == true,因為要判斷的是i之前的字符串是否查詢成功了,不要慣性思維寫dp[j - i] == true。

[注意]:各種語法:比如轉字典、字典查詢、切割字符串等

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

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

相關文章

如何選擇適合自己需求的揚州獨立服務器方案?

在互聯網時代&#xff0c;獨立服務器是網絡建設的重要組成部分。選擇適合自己需求的揚州獨立服務器方案至關重要。下面&#xff0c;我們將介紹如何選擇合適的揚州獨立服務器&#xff0c;并推薦萊卡云&#xff08;Lcayun&#xff09;服務器商。 明確需求 要明確自己的需求是什…

大型央企國企信創化與數字化轉型規劃實施方案(71頁PPT)

方案介紹&#xff1a; 隨著全球信息技術的迅猛發展&#xff0c;數字化轉型已成為企業提升競爭力、實現可持續發展的必經之路。作為國家經濟的重要支柱&#xff0c;大型央企國企在信創化與數字化轉型方面承載著重要的責任和使命。本方案旨在通過系統性的規劃和實施&#xff0c;…

rpc理解

rpc 遠程過程調用 rpc與http的區別 1.性能高 2.使用復雜 3.可擴展性高 4 跨語言支持 5.可以使用服務發現&#xff0c;負載均衡&#xff0c;熔斷降級 rpc遠程調用&#xff0c;必須傳輸數據&#xff0c;需要序列化。 序列化有多種方式&#xff1a; jdk原生序列化&#xff0c…

Discourse 使用 DiscourseConnect 來進行用戶數據同步

我們都知道 Discourse 的用戶管理和設置都高度依賴電子郵件。 如果 Discourse 沒有設置電子郵件 SMTP 的話&#xff0c;作為管理員是沒有辦法對用戶郵箱進行修改并且通過驗證的。 可以采取的辦法是通過 Discourse 的 DiscourseConnect 來進行用戶同步。 根據官方的說法&…

C++語法|虛函數與多態詳細講解(四)|哪些函數不能實現成虛函數和虛析構函數的理解

系列匯總講解&#xff0c;請移步&#xff1a; C語法&#xff5c;虛函數與多態詳細講解系列&#xff08;包含多重繼承內容&#xff09; 文章目錄 哪些函數不能成為虛函數虛析構函數什么時候把基類的析構函數必須是線程虛函數 哪些函數不能成為虛函數 要回答這個問題&#xff0c…

如何取消公眾號的在線客服綁定授權

1&#xff0c;功能設置 2&#xff0c;公眾號設置 3&#xff0c;查看詳情&#xff0c;取消

開發遠程遙控情趣玩具軟件,提供現成程序源碼應具備哪些基礎功能

以“東莞夢情智能”為參考&#xff0c;其提供的現成情趣玩具遙控軟件程序源碼&#xff0c;所具備哪些基礎功能&#xff0c;看看它們如何讓情趣玩具變得更加豐富多彩。 一、設備連接 設備連接是情趣玩具遙控軟件的基礎功能之一。“東莞夢情智能”的現成源碼支持多種連接方式&am…

leetcode題目42

接雨水 困難 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖&#xff0c;計算按此排列的柱子&#xff0c;下雨之后能接多少雨水 示例 1&#xff1a; 輸入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 輸出&#xff1a;6 解釋&#xff1a;上面是由數組 [0,1,0,2,1,0,1…

mysql中text,longtext,mediumtext區別

文章目錄 一.概覽二、字節限制不同三、I/O 不同四、行遷移不同 一.概覽 在 MySQL 中&#xff0c;text、mediumtext 和 longtext 都是用來存儲大量文本數據的數據類型。 TEXT&#xff1a;TEXT 數據類型可以用來存儲最大長度為 65,535(2^16-1)個字符的文本數據。如果存儲的數據…

開源VS閉源:誰更能推動AI技術的普及與發展?

一、引言 在人工智能&#xff08;AI&#xff09;技術的浪潮中&#xff0c;開源與閉源兩種模式一直并存&#xff0c;并各自在推動AI技術普及與發展上發揮著重要作用。然而&#xff0c;關于哪種模式更能有效地推動AI技術的普及與發展&#xff0c;一直存在著激烈的討論。本文將深…

Bitmap 的基本原理

Bitmap 是一種用于表示數據的高效方法&#xff0c;特別適合在需要表示大量布爾值&#xff08;true 或 false&#xff09;的情況下使用。它的原理是使用二進制位來表示每一個布爾值&#xff0c;節省了存儲空間和操作時間。 Bitmap 的基本原理 想象一下&#xff0c;你有一個很長…

樹莓派指令

1.常用指令 2.在終端窗口編輯文本文件 2.1nano編輯器 在文本里ctrlG就可以查看更多的快捷按鍵 2.2vi編輯器 進入默認為命令模式

Python2沒有模板字符串用法嗎?

Python2中也有模板字符串的使用方式&#xff0c;使用的是string.Template模塊&#xff0c;可以通過構造一個Template對象來實現。不過在Python3中&#xff0c;模板字符串被引入為一種更加方便的語法&#xff0c;直接在字符串中使用大括號{}來表示占位符&#xff0c;可以更加簡潔…

百川股份:大王蹲完,小王蹲

一根大陰線&#xff0c;正丹股份的十倍股傳奇之旅即將落幕&#xff1f; 有股民表示&#xff1a;化工板塊還有高手&#xff0c;大王倒了還有小王。 今天我們聊的正是化工板塊被稱為“正丹第二”的百川股份。 雖難比正丹的十倍漲幅&#xff0c;但百川也不簡單&#xff0c;3個月…

視頻號小店是怎么操作的?適用于所有人的操作玩法!

大家好&#xff0c;我是電商小V 視頻號小店是怎么操作的呢&#xff1f;這是剛開始去做&#xff0c;或者是剛了解的小伙伴最疑惑的問題&#xff0c; 視頻號小店是22年推出的&#xff0c;也是目前最火的一個創業型項目&#xff0c;也是吸引了不少的商家入駐&#xff0c;今天咱們就…

微服務架構的優勢 與 不足

優勢 微服務架構是一種將應用程序作為一套小服務的集合來開發和部署的方法&#xff0c;每個服務運行在其獨立的進程中&#xff0c;并通常圍繞業務能力組織。服務之間通過定義良好的API進行通信。微服務架構的優勢包括&#xff1a; 1. 獨立部署 每個微服務可以獨立部署到生產…

自動化技術-圖像識別

白屏檢測:使用OpenCV來判斷,首先通過pyautogui庫獲取屏幕截圖,然后將其轉成灰度圖像,接著計算灰度圖像的平均值,如果平均值大于閾值則為白屏 import cv2 import numpy as np import pyautogui# 獲取屏幕截圖 screenshot = pyautogui.screenshot() screenshot = np.array(s…

PLC遠程調試

隨著工業自動化的快速發展&#xff0c;PLC&#xff08;可編程邏輯控制器&#xff09;已經成為現代工業生產線的核心控制設備。然而&#xff0c;傳統的PLC調試方式往往受限于地理位置和物理連接&#xff0c;使得工程師在調試過程中面臨諸多不便。在這個背景下&#xff0c;HiWoo …

OpenHarmony 實戰開發——內核對象隊列之算法詳解

前言 OpenAtom OpenHarmony&#xff08;以下簡稱“OpenHarmony”&#xff09; LiteOS-M 內核是面向 IoT 領域構建的輕量級物聯網操作系統內核&#xff0c;具有小體積、低功耗、高性能的特點。在嵌入式領域的開發工作中&#xff0c;無論是自研還是移植系統&#xff0c;均繞不開…

Pytorch-07 完整訓練測試過程

要在PyTorch中使用GPU進行數據集的加載、模型的訓練和最后模型的測試&#xff0c;需要將數據集和模型都移動到GPU上&#xff0c;并確保在訓練和測試過程中都在GPU上進行計算。以下是一個完整的示例代碼&#xff0c;展示了如何在PyTorch中使用GPU進行端到端的訓練和測試&#xf…