動態規劃-1143.最長公共子序列-力扣(LeetCode)

一、題目解析

對于給定了兩個字符串中,需要找到最長的公共子序列,也就是兩個字符串所共同擁有的子序列。

二、算法原理

1、狀態表示

?

dp[i][j]:表示s1的[0,i]和s2的[0,j]區間內所有子序列,最長子序列的長度

2、狀態轉移方程

根據最后一個位置的狀態,分情況討論

?

dp[i][j] s1[i]==s2[j]->dp[i-1][j-1]+1

? ? ? ? ? s1[i]!=s2[j]->max(dp[i][j-1],dp[i-1][j])

3、初始化

由于需要dp[i][j-1]和dp[i-1][j],為了便于初始化計算最長子序列,可以多加一行一列,并初始化值為0,為了方便下標映射,可以對字符串前加一個空格處理,使其下標對其,便于操作

4、填表順序

?

為了避免所需值為計算,從上往下,從左往右開始填表

5、返回值

需要返回的是在s1和s2長度下的最長公共子串,所以return dp[m][n]?

依舊先畫圖思考,在自己實現,鏈接:1143. 最長公共子序列 - 力扣(LeetCode)

三、代碼示例

?

class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int m = text1.size(),n = text2.size();vector<vector<int>> dp(m+1,vector<int>(n+1,0));text1 = " "+text1;text2 = " "+text2;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){if(text1[i] == text2[j]){dp[i][j]= dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}}return dp[m][n];}
};

?

?

看到最后,如果對您有所幫助,還請點贊、收藏和關注,點點關注不迷路,我們下期再見!?

?

?

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

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

相關文章

互聯網c++開發崗位偏少,測開怎么樣?

通過這標題&#xff0c;不難看出問這個問題的&#xff0c;就是沒工作過的。如果工作過&#xff0c;那就是不斷往深的鉆研&#xff0c;路越走越窄&#xff0c;找工作一般就是找原來方向的。沒工作過的&#xff0c;那一般就是學生。 學生找什么方向的工作比較好&#xff1f; 學生…

推薦算法八股

跑路了&#xff0c;暑期0offer&#xff0c;華為主管面掛了&#xff0c;真幽默&#xff0c;性格測評就掛了居然給我一路放到主管面&#xff0c;科大迅飛太囂張&#xff0c;直接跟人說后面要面華為&#xff0c;元戎啟行&#xff0c;學了C后python完全忘了怎么寫&#xff0c;挺尷尬…

Spring Boot微服務架構(九):設計哲學是什么?

一、Spring Boot設計哲學是什么&#xff1f; Spring Boot 的設計哲學可以概括為 ??“約定優于配置”?? 和 ??“開箱即用”??&#xff0c;其核心目標是??極大地簡化基于 Spring 框架的生產級應用的初始搭建和開發過程??&#xff0c;讓開發者能夠快速啟動并運行項目…

前端導入Excel表格

前端如何在 Vue 3 中導入 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;&#xff1f; 在日常開發中&#xff0c;我們經常需要處理 Excel 文件&#xff0c;比如導入數據表格、分析數據等。文章將在 Vue 3 中實現導入 .xls 和 .xlsx 格式的文件&#xff0c;并解析其中的數據…

C++和C#界面開發方式的全面對比

文章目錄 C界面開發方式1. **MFC&#xff08;Microsoft Foundation Classes&#xff09;**2. **Qt**3. **WTL&#xff08;Windows Template Library&#xff09;**4. **wxWidgets**5. **DirectUI** C#界面開發方式1. **WPF&#xff08;Windows Presentation Foundation&#xf…

刷leetcode hot100返航必勝版--鏈表6/3

鏈表初始知識 鏈表種類&#xff1a;單鏈表&#xff0c;雙鏈表&#xff0c;循環鏈表 鏈表初始化 struct ListNode{ int val; ListNode* next; ListNode(int x): val&#xff08;x&#xff09;,next(nullptr) {} }; //初始化 ListNode* head new ListNode(5); 刪除節點、添加…

軟考 系統架構設計師系列知識點之雜項集萃(78)

接前一篇文章&#xff1a;軟考 系統架構設計師系列知識點之雜項集萃&#xff08;77&#xff09; 第139題 以下關于軟件測試工具的敘述&#xff0c;錯誤的是&#xff08;&#xff09;。 A. 靜態測試工具可用于對軟件需求、結構設計、詳細設計和代碼進行評審、走查和審查 B. 靜…

【Unity】云渲染

1 前言 最近在搞Unity云渲染的東西&#xff0c;所以研究了下官方提供的云渲染方案Unity Renderstreaming。注&#xff1a;本文使用的Unity渲染管線是URP。 2 文檔 本文也只是介紹基本的使用方法&#xff0c;更詳細內容參閱官方文檔。官方文檔&#xff1a;Unity Renderstreamin…

組相對策略優化(GRPO):原理及源碼解析

文章目錄 PPO vs GRPOPPO的目標函數GRPO的目標函數KL散度約束與估計ORM監督RL的結果PRM監督RL的過程迭代RL算法流程 GRPO損失的不同版本GRPO源碼解析 DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models PPO vs GRPO PPO的目標函數 J P P O…

Linux或者Windows下PHP版本查看方法總結

確定當前服務器或本地環境中 PHP 的版本,可以通過以下幾種方法進行操作: 1. 通過命令行檢查 這是最直接且常用的方法,適用于本地開發環境或有 SSH 訪問權限的服務器。 方法一:php -v 命令 php -v輸出示例:PHP 8.1.12 (cli) (built: Oct 12 2023 12:34:56) (NTS) Copyri…

[Linux] MySQL源碼編譯安裝

目錄 環境包安裝 創建程序用戶 解壓源碼包 配置cmake ?編輯編譯 安裝 配置修改屬性 屬主和屬組替換成mysql用戶管理 系統環境變量配置 初始化數據庫 服務管理 啟動 環境包安裝 yum -y install ncurses ncurses-devel bison cmake gcc gcc-c 重點強調&#xff1a;采…

【C++項目】負載均衡在線OJ系統-1

文章目錄 前言項目結果演示技術棧&#xff1a;結構與總體思路compiler編譯功能-common/util.hpp 拼接編譯臨時文件-common/log.hpp 開放式日志-common/util.hpp 獲取時間戳方法-秒級-common/util.hpp 文件是否存在-compile_server/compiler.hpp 編譯功能編寫&#xff08;重要&a…

轉戰海外 Web3 遠程工作指南

目錄 一、明確職業目標和技能 二、準備常用軟件 &#xff08;一&#xff09;通訊聊天工具 &#xff08;二&#xff09;媒體類平臺 &#xff08;三&#xff09;線上會議軟件 &#xff08;四&#xff09;辦公協作工具 &#xff08;五&#xff09;云存儲工具 &#xff08;六…

MongoDB賬號密碼筆記

先連接數據庫&#xff0c;新增用戶密碼 admin用戶密碼 use admin db.createUser({ user: "admin", pwd: "yourStrongPassword", roles: [ { role: "root", db: "admin" } ] })用戶數據庫用戶密碼 use myappdb db.createUser({ user: &…

CSS強制div單行顯示不換行

在CSS中&#xff0c;要讓<div>的內容強制單行顯示且不換行&#xff0c;可通過以下屬性組合實現&#xff1a; 核心解決方案&#xff1a; css 復制 下載 div {white-space: nowrap; /* 禁止文本換行 */overflow: hidden; /* 隱藏溢出內容 */text-overflow: e…

RK3568-快速部署codesys runtime

前期準備 PC-win10系統 RK3568-debian系統,內核已打入實時補丁,開啟ssh服務。PC下載安裝CODESYS Development System V3.5.17.0 https://store.codesys.com/en/codesys.html#product.attributes.wrapperPC下載安裝 CODESYS Control for Linux ARM64 SL 4.1.0.0.package ht…

中英混合編碼解碼全解析

qwen模型分詞器怎么映射的:中英混合編碼解碼全解析 中英文混合編碼與解碼的過程,本質是 字符編碼標準(如 UTF-8)對多語言字符的統一處理 ,核心邏輯圍繞“字節序列 ? 字符映射”展開 北京智源人工智能研究院中文tokenID qwen模型分詞器文件 一、編碼階段:統一轉為字節序…

React 事件處理與合成事件機制揭秘

引言 在現代前端開發的技術生態中&#xff0c;React憑借其高效的組件化設計和聲明式編程范式&#xff0c;已成為構建交互式用戶界面的首選框架之一。除了虛擬DOM和單向數據流等核心概念&#xff0c;React的事件處理系統也是其成功的關鍵因素。 這套系統通過"合成事件&qu…

冷雨泉教授團隊:新型視覺驅動智能假肢手,擬人化抓握技術突破,助力截肢者重獲生活自信

研究背景&#xff1a;日常生活中&#xff0c;健康人依靠手完成對物體的操作。對于手部截肢患者&#xff0c;手部的缺失導致他們難以有效地操作物體&#xff0c;進而影響正常的日常生活。擁有一個能夠實現擬人地自然抓取多種日常物體的五指動力假手是手部截肢患者的夙愿&#xf…

android 媒體框架之MediaCodec

一、MediaCodec 整體架構與設計思想 MediaCodec 是 Android 底層多媒體框架的核心組件&#xff0c;負責高效處理音視頻編解碼任務。其架構采用 生產者-消費者模型&#xff0c;通過雙緩沖區隊列&#xff08;輸入/輸出&#xff09;實現異步數據處理&#xff1a; 輸入緩沖區隊列…