<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)583:兩個(gè)字符串的刪除操作

          共 1206字,需瀏覽 3分鐘

           ·

          2022-04-17 23:17

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做?兩個(gè)字符串的刪除操作,我們先來看題面:
          https://leetcode-cn.com/problems/delete-operation-for-two-strings/

          Given?two?strings?word1?and?word2,?return?the?minimum?number?of?steps?required?to?make?word1?and?word2?the?same.

          In?one?step,?you?can?delete?exactly?one?character?in?either?string.

          給定兩個(gè)單詞 word1 和 word2 ,返回使得 word1 和? word2 相同所需的最小步數(shù)。
          每步 可以刪除任意一個(gè)字符串中的一個(gè)字符。

          示例


          示例 1:
          輸入: word1 = "sea", word2 = "eat"
          輸出: 2
          解釋: 第一步將 "sea"?變?yōu)?"ea"?,第二步將 "eat "變?yōu)?"ea"

          示例 ?2:
          輸入:word1 = "leetcode", word2 = "etco"
          輸出:4



          解題


          https://blog.csdn.net/hequnwang10/article/details/123941103


          主要思路:動態(tài)規(guī)劃


          dp[i][j]:表示要使word1和word2變成下標(biāo)為i和j時(shí)相等的字符串需要最少的刪除次數(shù)

          初始化:

          當(dāng)word1字符串為空時(shí),需要將word2字符串依次刪除才可以:
          dp[0][j]=j
          同樣的,當(dāng)word2字符串為空時(shí),需要將word1字符串依次刪除才可以:
          dp[i][0]=i
          當(dāng)兩者都不為空時(shí),從第一個(gè)字符開始遍歷,要么兩個(gè)字符相等,要么兩個(gè)字符不相等:
          兩個(gè)字符相等時(shí),直接與上一個(gè)狀態(tài)相等
          dp[i][j] = dp[i - 1][j - 1]
          兩個(gè)字符不相等時(shí),則由上一個(gè)狀態(tài)轉(zhuǎn)移,找最小的刪除次數(shù),然后+1;
          dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + 1;

          class?Solution?{
          ????public?int?minDistance(String word1, String word2)?{
          ????????int?m = word1.length(), n = word2.length();
          ????????int[][] dp = new?int[m + 1][n + 1];
          ????????//當(dāng)一個(gè)字符串為空時(shí),如果需要兩個(gè)字符串都相同,必須將另一個(gè)字符串全部刪除
          ????????for?(int?i = 1; i <= m; i++) {
          ????????????dp[i][0] = i;
          ????????}
          ????????//當(dāng)一個(gè)字符串為空時(shí),如果需要兩個(gè)字符串都相同,必須將另一個(gè)字符串全部刪除
          ????????for?(int?j = 1; j <= n; j++) {
          ????????????dp[0][j] = j;
          ????????}
          ????????for?(int?i = 1; i <= m; i++) {
          ????????????char?c1 = word1.charAt(i - 1);
          ????????????for?(int?j = 1; j <= n; j++) {
          ????????????????char?c2 = word2.charAt(j - 1);
          ????????????????//如果兩個(gè)字符串的字符相等,則最少刪除次數(shù)不變。
          ????????????????if?(c1 == c2) {
          ????????????????????dp[i][j] = dp[i - 1][j - 1];
          ????????????????} else?{
          ????????????????????//如果兩個(gè)字符串的字符不相等,則取兩個(gè)字符串減一個(gè)后的最小值 然后+1。
          ????????????????????dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + 1;
          ????????????????}
          ????????????}
          ????????}
          ????????return?dp[m][n];
          ????}
          }


          好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

          上期推文:
          LeetCode1-580題匯總,希望對你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)581:最短無序連續(xù)子數(shù)組
          LeetCode刷題實(shí)戰(zhàn)582:殺掉進(jìn)程

          瀏覽 48
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性爱天天干 | 日日日亚洲 | 日本高清无码手机在线毛片 | 婷婷色综合五月天 | 少妇双乳好大有奶水视频 |