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

算法刷題Day 52 最長遞增子序列+最長連續(xù)遞增子序列+最長重復(fù)子數(shù)組

這篇具有很好參考價(jià)值的文章主要介紹了算法刷題Day 52 最長遞增子序列+最長連續(xù)遞增子序列+最長重復(fù)子數(shù)組。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Day 52 動(dòng)態(tài)規(guī)劃

300. 最長遞增子序列

我自己想出來的方法,時(shí)間復(fù)雜度應(yīng)該是O(n2)

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        if (nums.size() == 1) return 1;
        vector<int> dp(nums.size(), 1);
        int maxCnt = INT_MIN;

        for (int i = 1; i < nums.size(); i++)
        {
            for (int j = i - 1; j >= 0; j--)
            {
                if (nums[j] < nums[i])
                {
                    dp[i] = max(dp[i], dp[j] + 1);
                    // break;
                }
                if (maxCnt < dp[i])
                {
                    maxCnt = dp[i];
                }
            }
        }

        return maxCnt;
    }
};

674. 最長連續(xù)遞增序列

滑動(dòng)窗口

連續(xù)的話,可以考慮用滑動(dòng)窗口文章來源地址http://www.zghlxwxcb.cn/news/detail-621690.html

class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        int left = 0, right = 1, maxLen = 1;

        while (right < nums.size())
        {
            if (nums[right] <= nums[right - 1])
            {
                int len = right - left;
                if (len > maxLen)
                {
                    maxLen = len;
                }
                left = right;
            }
            right++;
        }

        int len = right - left;
        if (len > maxLen)
        {
            maxLen = len;
        }
        left = right;

        return maxLen;
    }
};

動(dòng)態(tài)規(guī)劃

class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        int maxCnt = 1;
        vector<int> dp(nums.size(), 1);

        for (int i = 1; i < nums.size(); i++)
        {
            if (nums[i] > nums[i - 1])
            {
                dp[i] = max(dp[i], dp[i - 1] + 1);
            }
            if (maxCnt < dp[i])
            {
                maxCnt = dp[i];
            }
        }

        return maxCnt;
    }
};

貪心算法

class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        int maxCnt = 1, curCnt = 1;

        for (int i = 1; i < nums.size(); i++)
        {
            if (nums[i] > nums[i - 1])
            {
                curCnt++;
                if (maxCnt < curCnt)
                {
                    maxCnt = curCnt;
                }
            }
            else
            {
                curCnt = 1;
            }
        }

        return maxCnt;
    }
};

718. 最長重復(fù)子數(shù)組

class Solution {
public:
    int findLength(vector<int>& nums1, vector<int>& nums2) {
        int m = nums1.size() + 1, n = nums2.size() + 1, maxCnt = 0;
        vector<vector<int>> dp(m, vector<int>(n, 0));

        for (int i = 1; i < m; i++)
        {
            for (int j = 1; j < n; j++)
            {
                if (nums1[i - 1] == nums2[j - 1])
                {
                    dp[i][j] = max(dp[i][j], dp[i - 1][j - 1] + 1);
                }
                if (dp[i][j] > maxCnt)
                {
                    maxCnt = dp[i][j];
                }
            }
        }

        return maxCnt;
    }
};

到了這里,關(guān)于算法刷題Day 52 最長遞增子序列+最長連續(xù)遞增子序列+最長重復(fù)子數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • ( 動(dòng)態(tài)規(guī)劃) 674. 最長連續(xù)遞增序列 / 718. 最長重復(fù)子數(shù)組——【Leetcode每日一題】

    ( 動(dòng)態(tài)規(guī)劃) 674. 最長連續(xù)遞增序列 / 718. 最長重復(fù)子數(shù)組——【Leetcode每日一題】

    難度:簡單 給定一個(gè)未經(jīng)排序的整數(shù)數(shù)組,找到最長且 連續(xù)遞增的子序列 ,并返回該序列的長度。 連續(xù)遞增的子序列 可以由兩個(gè)下標(biāo) l 和 r(l r) 確定,如果對(duì)于每個(gè) l = i r ,都有 nums[i] nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是連續(xù)遞增子序列。

    2024年02月05日
    瀏覽(24)
  • 算法 DAY52 動(dòng)態(tài)規(guī)劃10 1143.最長公共子序列 1035.不相交的線 53. 最大子數(shù)組和

    本題和動(dòng)態(tài)規(guī)劃:718. 最長重復(fù)子數(shù)組 (opens new window)區(qū)別在于這里不要求是連續(xù)的了 1、dp數(shù)組 dp[i][j]:長度為[0, i - 1]的字符串text1與長度為[0, j - 1]的字符串text2的最長公共子序列為dp[i][j] 2、遞推公式 因?yàn)椴粡?qiáng)調(diào)是連續(xù)的,當(dāng)前dp[i][j] 就有三種路徑可以選:dp[i-1][j] dp[i][j-1]

    2024年02月03日
    瀏覽(34)
  • 藍(lán)橋杯-雙指針 | 最長連續(xù)不重復(fù)子序列 | 算法基礎(chǔ)

    藍(lán)橋杯-雙指針 | 最長連續(xù)不重復(fù)子序列 | 算法基礎(chǔ)

    ? 簡單說兩句 ? ? 正在努力的小新~ ?? 超級(jí)愛分享,分享各種有趣干貨! ????? 提供:模擬面試 | 簡歷診斷 | 獨(dú)家簡歷模板 ?? 感謝關(guān)注,關(guān)注了你就是我的超級(jí)粉絲啦! ?? 以下內(nèi)容僅對(duì)你可見~ 作者: 后端小知識(shí) , CSDN后端領(lǐng)域新星創(chuàng)作者 |阿里云專家博主 CSDN 個(gè)

    2024年02月03日
    瀏覽(23)
  • [100天算法】-最長遞增子序列的個(gè)數(shù)(day 47)

    思路 代碼 JavaScript Code C++ Code 復(fù)雜度分析 時(shí)間復(fù)雜度:$O(N^2)$。N 是數(shù)組? nums ?的長度。 空間復(fù)雜度:$O(N)$。N 是輔助數(shù)組? length ?和? count ?的長度。

    2024年02月07日
    瀏覽(25)
  • Leetcode:300. 最長遞增子序列、674. 最長連續(xù)遞增序列(C++)

    目錄 300.?最長遞增子序列 題目描述: 實(shí)現(xiàn)代碼: 原理思路: 674.?最長連續(xù)遞增序列 題目描述: 實(shí)現(xiàn)代碼: 原理思路: 題目描述: ????????給你一個(gè)整數(shù)數(shù)組? nums ?,找到其中最長嚴(yán)格遞增子序列的長度。 子序列? 是由數(shù)組派生而來的序列,刪除(或不刪除)數(shù)組中

    2024年02月11日
    瀏覽(32)
  • 【Leecode】674. 最長連續(xù)遞增序列

    【Leecode】674. 最長連續(xù)遞增序列

    Given an unsorted array of integers nums , return the length of the longest continuous increasing subsequence (i.e. subarray). The subsequence must be strictly increasing. A continuous increasing subsequence is defined by two indices l and r (l r) such that it is [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] and for each l = i r , nums[i] nums[i + 1] . E

    2024年02月07日
    瀏覽(24)
  • leetcode300. 最長遞增子序列 子序列(不連續(xù))

    https://leetcode.cn/problems/longest-increasing-subsequence/ 給你一個(gè)整數(shù)數(shù)組 nums ,找到其中最長嚴(yán)格遞增子序列的長度。 子序列 是由數(shù)組派生而來的序列,刪除(或不刪除)數(shù)組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數(shù)組 [0,3,1,6,2,2,7] 的子序列。 LIS即最長上升子序列,指

    2024年02月14日
    瀏覽(22)
  • 每日一題之最長連續(xù)遞增序列

    題目鏈接 給定一個(gè)未經(jīng)排序的整數(shù)數(shù)組,找到最長且 連續(xù)遞增的子序列 ,并返回該序列的長度。 連續(xù)遞增的子序列 可以由兩個(gè)下標(biāo) l 和 r ( l r )確定,如果對(duì)于每個(gè) l = i r ,都有 nums[i] nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是連續(xù)遞增子序列。

    2024年02月12日
    瀏覽(20)
  • 算法刷題Day 29 遞增子序列+全排列+全排列II

    如果直接像下面這樣寫的話,會(huì)出錯(cuò),出錯(cuò)的案例類似: [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-9nrEEc2S-1688623883770)(LC491-遞增子序列+LC.assets/image-20230703201315163.png)] 本題求自增子序列,是不能對(duì)原數(shù)組進(jìn)行排序的,排完序的數(shù)組都是自增子

    2024年02月15日
    瀏覽(21)
  • 最長連續(xù)不重復(fù)子序列(雙指針)

    含義 雙指針,指的是在遍歷對(duì)象的過程中,不是普通的使用單個(gè)指針進(jìn)行訪問,而是使用兩個(gè)相同方向(快慢指針)或者相反方向(對(duì)撞指針)的指針進(jìn)行掃描,從而達(dá)到相應(yīng)的目的。 另外還可以根據(jù)序列進(jìn)行區(qū)分,例如在快排中,雙指針指向的是同一個(gè)序列,而歸并排序

    2024年02月05日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包