国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

代碼隨想錄 動(dòng)態(tài)規(guī)劃 判斷子序列,不同的子序列

這篇具有很好參考價(jià)值的文章主要介紹了代碼隨想錄 動(dòng)態(tài)規(guī)劃 判斷子序列,不同的子序列。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

392. 判斷子序列

給定字符串?s?和?t?,判斷?s?是否為?t?的子序列。

字符串的一個(gè)子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對(duì)位置形成的新字符串。(例如,"ace""abcde"的一個(gè)子序列,而"aec"不是)。

思路:

1. 使用哈希統(tǒng)計(jì)兩個(gè)序列的二十六個(gè)字母的出現(xiàn)個(gè)數(shù)。

2. 動(dòng)態(tài)規(guī)劃 ,與最長(zhǎng)公共子序列類似,判斷最長(zhǎng)公共子序列長(zhǎng)度是否等于s,由于判斷s是否為t的s[j-1] != t[i-1] 時(shí),狀態(tài)的轉(zhuǎn)移只能從 t 的前 i-1個(gè)字母和與s的前j個(gè)字母的最大公共子序列長(zhǎng)度轉(zhuǎn)移。

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        dp = [[0] * (len(s) + 1) for _ in range(len(t) + 1)]

        for i in range(1, len(t) + 1):
            for j in range(1, len(s) + 1):
                if t[i-1] == s[j-1]:
                    dp[i][j] = dp[i-1][j-1] + 1

                else:
                    dp[i][j] = dp[i-1][j]

        return dp[-1][-1] == len(s)

115. 不同的子序列

給你兩個(gè)字符串?s?和?t?,統(tǒng)計(jì)并返回在?s?的?子序列?中?t?出現(xiàn)的個(gè)數(shù),結(jié)果需要對(duì)?109?+ 7 取模。

思路:動(dòng)態(tài)規(guī)劃,dp[i][j]定義為,s[:i] 的子序列中t[:j]出現(xiàn)的個(gè)數(shù),轉(zhuǎn)移方程為,當(dāng)s[i-1] == t[j-1]時(shí),dp[i][j] = dp[i-1][j-1](使用s[i-1]匹配t[j-1], 使用之前的元素匹配t[:j-1]) + dp[i-1][j](使用之前的元素匹配t[:j])?,當(dāng)s[i-1] != t[j-1] 時(shí), dp[i][j] = dp[i-1][j](使用之前的某個(gè)元素匹配t[j-1])。初始化dp[i][0] = 1,dp[0][j]=0(j>0)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-729150.html

class Solution:
    def numDistinct(self, s: str, t: str) -> int:
        dp = [[0]*(len(t)+1) for _ in range(len(s) + 1)]
        for n in range(len(s) + 1):
            dp[n][0] = 1

        for i in range(1, len(s) + 1):
            for j in range(1, len(t) + 1):
                if s[i-1] != t[j-1]:
                    dp[i][j] = dp[i-1][j]

                else:
                    dp[i][j] = dp[i-1][j] + dp[i-1][j-1]

        return dp[-1][-1]

到了這里,關(guān)于代碼隨想錄 動(dòng)態(tài)規(guī)劃 判斷子序列,不同的子序列的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 我在代碼隨想錄|寫代碼Day33 | 動(dòng)態(tài)規(guī)劃| 路徑問(wèn)題| 62.不同路徑,63. 不同路徑 II,343. 整數(shù)拆分

    我在代碼隨想錄|寫代碼Day33 | 動(dòng)態(tài)規(guī)劃| 路徑問(wèn)題| 62.不同路徑,63. 不同路徑 II,343. 整數(shù)拆分

    ??博客介紹`: 27dCnc ??系列專欄: 數(shù)據(jù)結(jié)構(gòu)與算法 算法入門 C++項(xiàng)目 ?? 當(dāng)前專欄: 算法入門 專題 : 數(shù)據(jù)結(jié)構(gòu)幫助小白快速入門算法 ???????????????????????? ☆*: .?. o(≧▽≦)o .?.:*☆ ??感謝大家點(diǎn)贊??收藏?評(píng)論?? 今日學(xué)習(xí)打卡 代碼隨想錄 - 動(dòng)態(tài)規(guī)劃

    2024年03月11日
    瀏覽(96)
  • 代碼隨想錄第53天|● 1143.最長(zhǎng)公共子序列 ● 1035.不相交的線 ● 53. 最大子序和 動(dòng)態(tài)規(guī)劃

    代碼隨想錄第53天|● 1143.最長(zhǎng)公共子序列 ● 1035.不相交的線 ● 53. 最大子序和 動(dòng)態(tài)規(guī)劃

    dp[i][j]:長(zhǎng)度為[0, i - 1]的字符串text1與長(zhǎng)度為[0, j - 1]的字符串text2的最長(zhǎng)公共子序列為dp[i][j] 通過(guò)pre記錄前一個(gè)dp[j-1] 循環(huán)中記錄cur為dp[i],循環(huán)結(jié)束后再更新pre=cur。 和最長(zhǎng)公共子序列相同 注意pre和cur放置的位置 dp[i]:包括下標(biāo)i(以nums[i]為結(jié)尾)的最大連續(xù)子序列和為dp[i

    2024年03月08日
    瀏覽(26)
  • 隨想錄Day39--動(dòng)態(tài)規(guī)劃: 62.不同路徑 , 63. 不同路徑 II

    隨想錄Day39--動(dòng)態(tài)規(guī)劃: 62.不同路徑 , 63. 不同路徑 II

    今天的路勁問(wèn)題,思想和昨天的爬樓梯一樣,主要還是找到你這個(gè)位置是怎么來(lái)的,到達(dá)dp[i][j]的方法由到達(dá)dp[i - 1][j]的方法再加上到達(dá)dp[i][j - 1]的方法和。在初始化時(shí),當(dāng)i=0或者j=0時(shí),到達(dá)他們的只有一條路勁,就是直走,所以對(duì)它進(jìn)行初始化。 63. 不同路徑 II 加了一個(gè)障

    2024年02月03日
    瀏覽(31)
  • 代碼隨想錄 動(dòng)態(tài)規(guī)劃-基礎(chǔ)題目

    代碼隨想錄 動(dòng)態(tài)規(guī)劃-基礎(chǔ)題目

    目錄 509.斐波那契數(shù)? 70.爬樓梯 746.使用最小花費(fèi)爬樓梯 62.不同路徑 63.不同路徑|| 343.整數(shù)拆分 96.不同的二叉樹 509. 斐波那契數(shù) 簡(jiǎn)單 斐波那契數(shù) ?(通常用? F(n) ?表示)形成的序列稱為? 斐波那契數(shù)列 ?。該數(shù)列由? 0 ?和? 1 ?開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和

    2024年03月18日
    瀏覽(36)
  • 動(dòng)態(tài)規(guī)劃例題(代碼隨想錄學(xué)習(xí))——持續(xù)更新

    動(dòng)態(tài)規(guī)劃例題(代碼隨想錄學(xué)習(xí))——持續(xù)更新

    dp[i][j]的含義是:從(0,0)到(i,j)的不同路徑 當(dāng)路線中有了障礙,此路不通,所以在不同路徑的遞推公式上需要增加條件 if(obs[i,j]==0)沒(méi)有障礙,dp[i][j]=?dp[i-1][j]+dp[i][j-1] if(obs[i][j]==1)有障礙,不進(jìn)行推導(dǎo) obs數(shù)組表示障礙 障礙的后面應(yīng)該是0(原因:遇到障礙后,即

    2024年04月12日
    瀏覽(21)
  • 二刷代碼隨想錄——?jiǎng)討B(tài)規(guī)劃day40

    一個(gè)本碩雙非的小菜雞,備戰(zhàn)24年秋招,計(jì)劃二刷完卡子哥的刷題計(jì)劃,加油! 二刷決定精刷了,于是參加了卡子哥的刷題班,訓(xùn)練營(yíng)為期60天,我一定能堅(jiān)持下去,迎來(lái)兩個(gè)月后的脫變的,加油! 推薦一手卡子哥的刷題網(wǎng)站,感謝卡子哥。代碼隨想錄 終于來(lái)到了守關(guān)boss。

    2024年03月11日
    瀏覽(85)
  • 代碼隨想錄第41天 | 動(dòng)態(tài)規(guī)劃part03

    代碼隨想錄第41天 | 動(dòng)態(tài)規(guī)劃part03

    ● 343. 整數(shù)拆分 ● 96.不同的二叉搜索樹 題目一 343. 整數(shù)拆分 給定一個(gè)正整數(shù) n,將其拆分為至少兩個(gè)正整數(shù)的和,并使這些整數(shù)的乘積最大化。 返回你可以獲得的最大乘積。 示例 : 輸入: 10 輸出: 36 解釋: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 說(shuō)明: 你可以假設(shè) n 不小于 2 且不大于 5

    2024年01月24日
    瀏覽(26)
  • 動(dòng)態(tài)規(guī)劃01背包問(wèn)題-代碼隨想錄-刷題筆記

    動(dòng)態(tài)規(guī)劃01背包問(wèn)題-代碼隨想錄-刷題筆記

    有n件物品和一個(gè)最多能背重量為w 的背包。第i件物品的重量是weight[i],得到的價(jià)值是value[i] 。 每件物品只能用一次 ,求解將哪些物品裝入背包里物品價(jià)值總和最大。 二維dp數(shù)組01背包 確定dp數(shù)組以及下標(biāo)的含義 是使用二維數(shù)組,即 dp[i][j] 表示從下標(biāo)為[0-i]的物品里任意取,

    2024年02月07日
    瀏覽(85)
  • 代碼隨想錄算法訓(xùn)練51 | 動(dòng)態(tài)規(guī)劃part12

    本題加了一個(gè)冷凍期,狀態(tài)就多了,有點(diǎn)難度,大家要把各個(gè)狀態(tài)分清,思路才能清晰? 視頻講解: 動(dòng)態(tài)規(guī)劃來(lái)決定最佳時(shí)機(jī),這次有冷凍期!| LeetCode:309.買賣股票的最佳時(shí)機(jī)含冷凍期_嗶哩嗶哩_bilibili 代碼隨想錄 相對(duì)122.買賣股票的最佳時(shí)機(jī)II?,本題只需要在計(jì)算賣出操

    2024年01月18日
    瀏覽(51)
  • 代碼隨想錄Day41:動(dòng)態(tài)規(guī)劃Part3

    代碼隨想錄Day41:動(dòng)態(tài)規(guī)劃Part3

    講解前: 毫無(wú)頭緒 講解后: 這道題的動(dòng)態(tài)思路一開始很不容易想出來(lái),雖然dp數(shù)組的定義如果知道是動(dòng)態(tài)規(guī)劃的話估摸著可以想出來(lái)那就是很straight forward dp定義:一維數(shù)組dp[i], i 代表整數(shù)的值,dp[i] 代表將整數(shù) i 拆分的話可以獲得的最大乘積 然后呢就是定義遞歸推導(dǎo)式了,

    2024年04月27日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包