代碼隨想錄算法訓練營第51天 [115.不同的子序列 583. 兩個字符串的刪除操作 72. 編輯距離 ]

代碼隨想錄算法訓練營第51天 [115.不同的子序列 583. 兩個字符串的刪除操作 72. 編輯距離 ]


一、115.不同的子序列

鏈接: 代碼隨想錄.
思路:dp[i][j] 以t[j-1]為結尾的字符串在 以s[i-1]為結尾的字 符串出現個數
相等的時候 dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
不相等的時候 dp[i][j] = dp[i - 1][j];
做題狀態:看解析后做出來了

class Solution {
public:int numDistinct(string s, string t) {// dp[i][j] 以t[j-1]為結尾的字符串在 以s[i-1]為結尾的字 符串出現個數vector<vector<uint64_t>> dp(s.size() + 1, vector<uint64_t>(t.size() + 1, 0));dp[0][0] = 1;for(int i = 0;i<s.size();i++){dp[i][0] = 1;}for (int i = 1; i <= s.size(); i++) {for (int j = 1; j <= t.size(); j++) {if (s[i - 1] == t[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];} else {dp[i][j] = dp[i - 1][j];}}}return dp[s.size()][t.size()];}
};

二、583. 兩個字符串的刪除操作

鏈接: 代碼隨想錄.
思路:看注釋
做題狀態:看解析后做出來了

class Solution {
public:int minDistance(string word1, string word2) {// dp[i][j]//  以i-1為結尾的字符串word1,和以j-1位結尾的字符串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 (int j = 0; j <= word2.size(); j++)dp[0][j] = j;for (int i = 1; i <= word1.size(); i++) {for (int j = 1; j <= word2.size(); j++) {if (word1[i - 1] == word2[j - 1]) {// 相等的話就不用刪除dp[i][j] = dp[i - 1][j - 1];} else {// 不相等 要么刪word1 要么刪word2 要么都刪dp[i][j] = min({dp[i - 1][j] + 1, dp[i][j - 1] + 1,dp[i - 1][j - 1] + 2});}}}return dp[word1.size()][word2.size()];}
};

三、72. 編輯距離

鏈接: 代碼隨想錄.
思路:看注釋,不相等的時候的增、刪、改
做題狀態:看解析后做出來了

class Solution {
public:int minDistance(string word1, string word2) {// dp[i][j]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 (int j = 0; j <= word2.size(); j++)dp[0][j] = j;for (int i = 1; i <= word1.size(); i++) {for (int j = 1; j <= word2.size(); j++) {if (word1[i - 1] == word2[j - 1]) {dp[i][j] = dp[i - 1][j - 1];} else {// 增// word1里增加一個,相當于word2里刪除一個,操作次數和刪差不多// 刪 // dp[i][j] = min(dp[i-1][j],dp[i][j-1])// 分別對應刪除word1 和 刪除word2 // 改 // 替換一個后 word1[i-1] == word2[j-1]// 相當于在dp[i-1][j-1]的基礎上多操作一步//    所以是dp[i - 1][j - 1] + 1dp[i][j] = min({dp[i - 1][j] + 1, dp[i][j - 1] + 1,dp[i - 1][j - 1] + 1});}}}return dp[word1.size()][word2.size()];}
};

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

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

相關文章

JAVA案例模擬電影信息系統

一案例要求&#xff1a; 二具體代碼(需要在同一個包下創建三個類) Ⅰ&#xff1a;實現類 package 重修;import java.util.Random; import java.util.Scanner;public class first {public static void main(String[] args) {javabean[]moviesnew javabean[4];movies[0] new ja…

加密與安全_ Jasypt (Java Simplified Encryption)不完全指北

文章目錄 官網功能概述Code附 官網 http://www.jasypt.org/ 功能概述 Jasypt 是一個 Java 庫&#xff0c;它允許開發人員以最小的努力添加基本的加密功能&#xff0c;并且不需要深入了解密碼學的工作原理。 高安全性、基于標準的加密技術&#xff0c;適用于單向和雙向加密。…

AIGC對設計師積極性的影響

隨著科技的迅猛發展&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;工具正逐漸深入設計的每個角落&#xff0c;對設計師的工作方式和思維模式產生了深遠的影響。AIGC不僅極大提升了設計師的工作效率&#xff0c;更激發了他們的創新思維&#xff0c;為設計行業帶來了翻…

Spring Boot在java領域中有哪些優勢

哈嘍&#xff0c;大家好呀&#xff0c;淼淼又來和大家見面啦&#xff0c;隨著云計算、微服務架構的興起&#xff0c;Java開發領域迫切需要一套高效、靈活且易于上手的框架來應對日益復雜的業務需求。正是在這樣的背景下&#xff0c;Spring Boot應運而生&#xff0c;以其獨特的魅…

Dungeonborne聯機失敗、延遲高、卡頓的解決方法

Dungeonborne將第一人稱動作的即時性與經典的西幻RPG職業設計巧妙融合&#xff0c;為玩家帶來了一場前所未有的游戲體驗。在這款沉浸式第一人稱PvPvE地下城探險游戲中&#xff0c;我們可以獨自深入探索&#xff0c;也可以與值得信賴的伙伴并肩作戰&#xff0c;共同揭開地下城的…

移動端UI風格營造舒適氛圍

移動端UI風格營造舒適氛圍

中服云數字孿生平臺引領工業物聯仿真新紀元!

中服云數字孿生平臺3.0是基于中服云物聯網平臺和數據中臺打造的一款實時數據2D/3D集成展示監控平臺。 旨在解決工業物聯網數據的直觀展示、實虛互動、仿真模擬、故障診斷、告警、預警、預測、實時觀測、實時監控等問題。提供了數據采集、數據底座、監控邏輯、建模工具、展示互…

android 國內下載Gradle源

在中國使用 Gradle 時&#xff0c;可以配置使用一些國內的鏡像源&#xff0c;以提高下載速度和穩定性。以下是幾個常用的 Gradle 鏡像源地址&#xff1a; 配置 gradle-wrapper.properties 文件: 阿里云: distributionUrlhttps\://services.gradle.org/distributions/gradle-7.…

數據結構 —— 圖的遍歷

數據結構 —— 圖的遍歷 BFS&#xff08;廣度遍歷&#xff09;一道美團題DFS&#xff08;深度遍歷&#xff09; 我們今天來看圖的遍歷&#xff0c;其實都是之前在二叉樹中提過的方法&#xff0c;深度和廣度遍歷。 在這之前&#xff0c;我們先用一個鄰接矩陣來表示一個圖&#…

220千伏變電站輔助設備智能監控平臺 無人化與自動化升級改造工程

220千伏變電站特點 高電壓等級&#xff1a;220千伏變電站的最大特點是其高壓傳輸能力&#xff0c;能夠將發電廠產生的電能高效地傳輸到較遠的地區&#xff0c;滿足大型城市及工業區域的用電需求。 輸電能力大&#xff1a;220千伏變電站在輸電能力上遠大于普通的110千伏或更低…

Mybatis框架的集成使用

1_框架概述 框架是一個半成品&#xff0c;已經對基礎的代碼進行了封裝并提供相應的API&#xff0c;開發者在使用框架時直接調用封裝好的api可以省去很多代碼編寫&#xff0c;從而提高工作效率和開發速度,框架是一種經過校驗、具有一定功能的半成品軟件. 經過校驗&#xff1a;指…

【超萬卡GPU集群關鍵技術深度分析 2024】

文末有福利&#xff01; 1. 集群高能效計算技術 隨著大模型從千億參數的自然語言模型向萬億參數的多模態模型升級演進&#xff0c;超萬卡集群吸需全面提升底層計算能力。 具體而言&#xff0c;包括增強單芯片能力、提升超節點計算能力、基于 DPU (Data Processing Unit) 實現…

淺聊權限系統設計模型

淺聊權限系統設計模型 設計權限目的 目前主流的各類權限管理模型,如基于用戶、角色組、實體等等的權限模型,結合產品本身的業務、面臨的問題和未來的發展兼容,進行權限模型選型,找到適合產品本身的權限范式體系。 權限模型類型 ACL:權限控制列表(Access Control List)D…

Mx Admin 基于react18的后臺管理系統

前言 Mx Admin 基于React18 vite5 antd5的后臺管理系統&#xff0c; 基于RBAC的權限控制系統&#xff0c;動態菜單和動態路由支持tab路由緩存嵌套菜單支持多種菜單布局模式亮暗色主題切換

Enzo Life Sciences熱點分享:細胞治療中的T細胞活化

細胞治療&#xff08;Cell Therapy&#xff09;作為一種新近發展起來的癌癥治療方法&#xff0c;是一種利用患者自體&#xff08;或異體&#xff09;的成體細胞&#xff08;或干細胞&#xff09;對組織、器官進行修復的治療方法。通常是由免疫細胞和相關的細胞產生調節細胞功能…

Java判斷范圍型的數據是否存在重疊(數值類型、日期類型)

為什么寫這么一篇文章呢&#xff1f; 遇到了個問題&#xff0c;同一天可以輸入多個時間段&#xff0c;但是每個時間段的時間不能出現重疊。 納尼&#xff0c;這不就是判斷數據返回是否有重疊的變種嘛~ 簡單&#xff0c;開搞 數字范圍是否重疊判斷 這里以int類型為例了&…

linux配置qqbot(Mirai+Alicebot)

雖然最終沒有成功配置好qqbot&#xff0c;但是感覺這個過程還是值得記錄的&#xff0c;所以寫出了下文 最終因為登陸qq時的code45問題導致沒有成功登錄&#xff0c;據說更換qq號或者配置簽名服務器是有可能可行的。 安裝環境 安裝mcl&#xff08;mirai的控制臺&#xff09; …

【單片機畢業設計選題24046】-基于單片機的智能魚缸設計

系統功能: 檢測水溫&#xff0c;水溫過低開啟PTC加熱。檢測水位&#xff0c;水位過低開啟水泵抽水。檢測濕度&#xff0c;濕度過高則開啟風扇通風。 檢測PH值和渾濁度&#xff0c;TTS語音播報功能&#xff0c;OLED顯示系統信息&#xff0c;藍牙模塊連接手機APP。 系統上電后…

IT專業入門,高考假期預習指南—初識產品經理BRD、MRD 和 PRD

七月來臨&#xff0c;各省高考分數已揭榜完成。而高考的完結并不意味著學習的結束&#xff0c;而是新旅程的開始。對于有志于踏入IT領域的高考少年們&#xff0c;這個假期是開啟探索IT世界的絕佳時機。作為該領域的前行者和經驗前輩&#xff0c;你是否愿意為準新生們提供一份全…

AI 芯片之戰:開啟智能新時代的關鍵角逐

在科技發展的浪潮中&#xff0c;一場圍繞 AI 芯片的激烈競爭正在全球范圍內如火如荼地展開。多家巨頭紛紛投身其中&#xff0c;使得這場混戰已然進入白熱化階段。 AI 芯片&#xff0c;作為推動人工智能發展的核心硬件&#xff0c;其作用舉足輕重。它能夠高效地處理海量的數據&a…