【學會動態規劃】單詞拆分(24)

目錄

動態規劃怎么學?

1. 題目解析

2. 算法原理

1. 狀態表示

2. 狀態轉移方程

3. 初始化

4. 填表順序

5. 返回值

3. 代碼編寫

寫在最后:


動態規劃怎么學?

學習一個算法沒有捷徑,更何況是學習動態規劃,

跟我一起刷動態規劃算法題,一起學會動態規劃!

1. 題目解析

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

題目很好理解,就是給我們一個字典,

看是否能夠用字典里的字符串拼接成他給的目標字符串 s。

2. 算法原理

1. 狀態表示

dp[ i ] 表示的是從起點到 dp[ i ] 的字符串是否能被字典里的字符串拼接成,

如果成就是 true,否則就是 false

2. 狀態轉移方程

根據最后一個位置的情況來劃分問題,

我們可以把它分成兩個區間來分析,

左區間能否可以拼接成功?右區間是否是字典里的字符串?

所以我們的狀態轉移方程就是:

左區間 == true && 右區間存在字典中,否則就是 false

3. 初始化

為了防止越界加一個虛擬的頭結點即可。

4. 填表順序

從左往右。

5. 返回值

返回 dp 表的最后一個位置

3. 代碼編寫

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

寫在最后:

以上就是本篇文章的內容了,感謝你的閱讀。

如果感到有所收獲的話可以給博主點一個哦。

如果文章內容有遺漏或者錯誤的地方歡迎私信博主或者在評論區指出~

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

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

相關文章

【模擬集成電路】反饋系統——基礎到進階(一)

【模擬集成電路】反饋系統——基礎到進階 前言1 概述2 反饋電路特性2.1增益靈敏度降低2.2 終端阻抗變化2.3 帶寬拓展2.4 非線性減小 3 放大器分類4 反饋檢測和返回機制4.1 按照檢測物理量分類4.2 按照檢測拓撲連接分類 5 反饋結構分析6 二端口方法7 波特方法6 麥德布魯克方法 前…

VS2015打開Qt的pro項目文件 報錯

QT報錯&#xff1a;Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set 解決方法&#xff1a; 找到本機安裝的QT路徑&#xff0c;找到“msvc-version.conf”文件&#xff0c;用記事本打開&#xff0c; 在其中添加版本“QMAKE_MSC_VER 1900”保存即可。 …

Kafka基礎及常見面試題

1. 用途 1. 流量削峰 2. 流計算 2. Kafka的核心組件 在Kafka中&#xff0c;Producer、Broker和Consumer是三個關鍵的角色&#xff0c;它們在整個消息傳遞過程中扮演不同的角色和功能&#xff1a;1. **Producer&#xff08;生產者&#xff09;**&#xff1a;生產者是消息的發…

CSS:filter濾鏡 詳解(用法 + 代碼 + 例子 + 效果)

文章目錄 filter 濾鏡blur() 模糊度例子 漸變光暈 brightness() 元素亮度contrast() 對比度grayscale() 元素灰度hue-rorate() 色相opacity() 透明度invert() 反轉顏色saturate() 飽和度 backdrop-filter 蒙版&#xff0c;濾鏡例子 卷軸展開 filter 濾鏡 動圖為效果添加前后對…

界面組件Telerik UI for WinForms R2 2023——擁有VS2022暗黑主題

Telerik UI for WinForms擁有適用Windows Forms的110多個令人驚嘆的UI控件。所有的UI for WinForms控件都具有完整的主題支持&#xff0c;可以輕松地幫助開發人員在桌面和平板電腦應用程序提供一致美觀的下一代用戶體驗。 Telerik UI for WinForms R2 2023于今年6月份發布&…

Blender 混合現實3D模型制作指南【XR】

本教程分步展示如何&#xff1a; 減少 3D 模型的多邊形數量&#xff0c;使其滿足 Microsoft Dynamics 365 Guides 和使用 Microsoft Power Apps 創建的應用程序中包含的混合現實組件的特定性能目標的性能需求。將 3D 模型的多種材質&#xff08;顏色&#xff09;組合成可應用于…

?Kubernetes的演變:從etcd到分布式SQL的過渡

DevRel領域專家Denis Magda表示&#xff0c;他偶然發現了一篇解釋如何用PostgreSQL無縫替換etcd的文章。該文章指出&#xff0c;Kine項目作為外部etcd端點&#xff0c;可以將Kubernetes etcd請求轉換為底層關系數據庫的SQL查詢。 受到這種方法的啟發&#xff0c;Magda決定進一步…

軟件測試技術之如何編寫測試用例(6)

四、客戶端兼容性測試 1、平臺測試 市場上有很多不同的操作系統類型&#xff0c;最常見的有Windows、Unix、Macintosh、Linux等。Web應用系統的最終用戶究竟使用哪一種操作系統&#xff0c;取決于用戶系統的配置。這樣&#xff0c;就可能會發生兼容性問題&#xff0c;同一個應…

求Win11系統virtualbox+vagrant安裝MacOS虛擬機

文章目錄 一、背景二、素材2.1、virtualboxvagrant 三、問題3.1、安裝失敗3.2、第二個失敗3.3、網絡說 四、求助 一、背景 題主&#xff0c;主要是窮&#xff0c;沒錢買mac筆記本或相關系統的蘋果產品&#xff0c;哈哈&#xff0c;偶爾也有用過MacOS系統&#xff0c;只是還沒有…

actuator/prometheus使用pushgateway上傳jvm監控數據

場景 準備 prometheus已經部署pushgateway服務&#xff0c;訪問{pushgateway.server:9091}可以看到面板 實現 基于springboot引入支持組件&#xff0c;版本可以 <!--監控檢查--><dependency><groupId>org.springframework.boot</groupId><artifa…

H3C交換機如何配置本地端口鏡像并在PC上使用Wireshake抓包

環境: H3C S6520-26Q-SI version 7.1.070, Release 6326 Win 10 專業版 Wireshake Version 4.0.3 問題描述: H3C交換機如何配置本地端口鏡像并在PC上使用Wireshake抓包 解決方案: 配置交換機本地端口鏡像 1.進入系統視圖,并創建本地鏡像組1 <H3C>system-vie…

高效反編譯luac文件

對于游戲開發人員,有時候希望從一些游戲apk中反編譯出源代碼,進行學習,但是如果你觸碰到法律邊緣,那么你要非常小心。 這篇文章,我針對一些用lua寫客戶端或者服務器的編譯過的luac文件進行反編譯,獲取其源代碼的過程。 這里我不贅述如何反編譯解壓apk包的過程了,只說重點…

【【STM32之GPIO】】

STM32之GPIO 學完了正點原子自帶的視頻課之后感覺仍然一知半解現在更新一下來自其他版本的STM32學習 GPIO 就是 General Purpose Input Output 中文名叫通用輸入輸出口 可配置8種輸入輸出模式 引腳電平 0V~3.3V 部分引腳可容忍5V 輸出模式下可控制端口輸出高低電平&#xff…

ubuntu bind dns服務配置

sudo apt-get install bind9 內網搭建DNS服務器&#xff0c;大多數是解析純內網地址使用。但是偶爾也需要解析外網的地址&#xff0c;所以我們可以配置DNS沒有添加A記錄的URL時&#xff0c;forward到外網DNS服務器或者內網的其他DNS服務器解析。 打開配置文件&#xff1a; sud…

Leetcode 動態規劃

動態規劃&#xff1a; 72. Edit Distance class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() 1, vector<int>(word2.size() 1, 0));for (int i 0; i < word1.size(); i) dp[i][0] i;for …

grafana-zabbix基礎操作篇------導入數據源

文章目錄 一、grafana的安裝1.1、下載地址1.2、下載后導入所安裝機器1.3、yum安裝解決依賴1.4、啟動grafana1.5、查看端口是否啟用&#xff08;端口默認3000&#xff09;1.6、瀏覽器訪問 二、添加zabbix數據源2.1、導入數據源 **下一篇 我們講講構建儀表板的操作** 今天&#x…

如何在工作中利用AIGC提質增效?

引言 人工智能技術快速發展&#xff0c;以 ChatGPT 為代表的新的人工智能語言模型的出現與更迭&#xff0c;引發人們極大的興奮和關注。越來越多的企業開始將 AI 技術應用到生產流程&#xff0c;以提高工作效率和生產力。AIGC&#xff08;AI Generated Content&#xff09;是人…

UE4/UE5 照明構建失敗 “Lightmass crashed”解決“數組索引越界”

在構建全局光照時,經常會出現“Lightmass crashed”的錯誤,導致光照構建失敗。本文將分析這一問題的原因,并給出解決建議。 UE4 版本4.26 報錯如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…

在 ubuntu 18.04 上使用源碼升級 OpenSSH_7.6p1到 OpenSSH_9.3p1

1、檢查系統已安裝的當前 SSH 版本 使用命令 ssh -V 查看當前 ssh 版本&#xff0c;輸出如下&#xff1a; OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n 7 Dec 20172、安裝依賴&#xff0c;依次執行以下命令 sudo apt update sudo apt install build-essential zlib1g…

linux 環境收集core文件步驟

Linux環境下進程發生異常而掛掉&#xff0c;通常很難查找原因&#xff0c;但是一般Linux內核給我們提供的核心文件&#xff0c;記錄了進程在崩潰時候的信息&#xff0c;在C語言類的大型項目中&#xff0c;有助于深入定位。其配置流程如下&#xff1a; 1 查看生成core文件開關是…