首页 > 其他分享 >刷题笔记52 动态规划 part13

刷题笔记52 动态规划 part13

时间:2023-05-29 22:33:35浏览次数:45  
标签:nums int part13 52 vector ans size dp 刷题

@

目录

动态规划

● 300.最长递增子序列
● 674. 最长连续递增序列
● 718. 最长重复子数组

300.最长递增子序列

300.最长递增子序列

法1:动态规划

    int lengthOfLIS(vector<int>& nums) {
        //未考虑数组长度<=1
        if (nums.size() <= 1)return nums.size();
        vector<int> dp(nums.size(),1);
        int ans = 1;
        for (int i = 1; i < nums.size(); ++i) {
            for (int j = 0; j < i; ++j) {
                if (nums[i] > nums[j]) dp[i] = max(dp[i],dp[j] + 1);
            }
            ans = max(ans,dp[i]);
        }
        return ans;
    }

674. 最长连续递增序列

674. 最长连续递增序列
法1:动态规划

   int findLengthOfLCIS(vector<int>& nums) {
        if (nums.size() == 0)return 0;
        //dp[i]
        vector<int> dp(nums.size(), 1);
        int ans = 1;
        for (int i = 1; i < nums.size(); ++i) {
            if (nums[i] > nums[i - 1]) {
                dp[i] = dp[i - 1] + 1;
            }
            if (dp[i] > ans) ans = dp[i];
        }
        return ans;
    }

718. 最长重复子数组

718. 最长重复子数组

法1:动态规划

    int findLength(vector<int>& nums1, vector<int>& nums2) {
        vector<vector<int>>dp(nums1.size() + 1, vector<int>(nums2.size() + 1,0));
        int ans = 0;
        for (int i = 1; i <= nums1.size(); ++i) {
            for (int j = 1; j <= nums2.size(); ++j) {
                if (nums1[i - 1] == nums2[j - 1]) {//此处为何比较的是(nums1[i - 1] == nums2[j - 1])
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                }
                if (ans < dp[i][j]) ans = dp[i][j];
            }
        }
        return ans;
    }

法2:滚动数组


 int findLength(vector<int>& nums1, vector<int>& nums2) {
       //滚动数组
       vector<int>dp(nums2.size() + 1,0);//vector<int>();
       int ans = 0;
        for (int i = 1; i <= nums1.size(); ++i) {
            for (int j = nums2.size(); j > 0; j--) {
                if (nums1[i - 1] == nums2[j - 1]) {
                    dp[j] = dp[j - 1] + 1;
                } else dp[j] = 0; // 注意这里不相等的时候要有赋0的操作
                if (ans < dp[j]) ans = dp[j];//此处为dp[j]
            }
        }
        return ans;
}

标签:nums,int,part13,52,vector,ans,size,dp,刷题
From: https://www.cnblogs.com/asupersource-tech/p/17441881.html

相关文章

  • [刷题笔记55 动态规划15]
    @目录动态规划392.判断子序列115.不同的子序列动态规划●392.判断子序列●115.不同的子序列392.判断子序列392.判断子序列法1:动态规划boolisSubsequence(strings,stringt){//动态规划vector<vector<int>>dp(s.size()+1,vector<int>(t.size(......
  • IG5236固件下载,梵想S770固态硬盘固件升级工具,IG5236固件版本3.W.J.1t
    回想自己购买的第一块固态硬盘还是在2013年,放到现在,差不多可以买1块14T或16T的机械硬盘,再或者可以买2至3块2T的固态硬盘了。近期正好又赶上存储颗粒供大于求,固态硬盘零售价一路走低,即使没有很强的购买需求,也让我忍不住出手购买。我选择了梵想S7702TB版本。产品主控IC是来自于InnoG......
  • 20230529 模拟赛订正
    A.xorontree在一棵\(n\)个点的树上,第\(i\)个点初始点权\(w_i\),有\(q\)次操作:0uv:\(v\tow_u\)1x:查询\(w_x\operatorname{xor}w_y\)的最大值,其中\(y\)是\(x\)的祖先(包括\(x\))\(n,q\le10^5\),TL=2s,ML=128MB.在考场上先是绞尽脑汁想到一个时间复杂度......
  • hdu 5201(隔板法+容斥原理)
    TheMonkeyKingTimeLimit:8000/4000MS(Java/Others)    MemoryLimit:65536/65536K(Java/Others)ProblemDescriptionnpeaches.Andtherearemmonkeys(includingGoKu),theyarenumberedfrom1tom,GoKu’snumberis1.GoKuwa......
  • 52.同源策略(Same-Origin Policy)限制了跨域请求No 'Access-Control-Allow-Origin' head
    又遇到如下报错了,该如何处理,AccesstoXMLHttpRequestat'http://localhost:3000/users'fromorigin'http://localhost:5173'hasbeenblockedbyCORSpolicy:No'Access-Control-Allow-Origin'headerispresentontherequestedresource.这个错误......
  • 【华为HCIP | 高级网络工程师】刷题日记(10)
    个人名片:......
  • 算法刷题记录:珂朵莉的假toptree
    题目链接https://ac.nowcoder.com/acm/contest/19306/1035题目分析将每个数每一位都进行拆分即可。AC代码#include<iostream>usingnamespacestd;intn,p=1,num=1;inta[1005];intmain(){cin>>n;while(p<=1000){if(num>=1......
  • ctfshow刷题笔记-misc入门
    ctfshow-misc入门图片篇(文件结构)misc241.在010Editor中打开文件,根据鼠标自动提示找到图片宽高对应的地方biWidth指定图象的宽度,单位是象素。biHeight指定图象的高度,单位是象素。2.修改图片高度为250px并另存3.打开后得到flagmisc251.从网上找到的脚本(将脚本和图片......
  • 总结20230528
    代码时间(包括上课)2h代码量(行):50行博客数量(篇):1篇相关事项:1、今天直接凌晨五点才到宿舍,连夜整的无人机,为后天的比赛准备。2、今天上午上的计算机网络,由于比赛冲突,请假了没去上。3、今天下午的web上机也没去,正好赶上web报告也写完。4、晚上也是连夜通宵整的无人机。......
  • [20230526]RESULT_CACHE提示选项.txt
    [20230526]RESULT_CACHE提示选项.txt--//一般如果查询信息很少变化,可以通过提示缓存结果,这样可以一定程度减少latch,逻辑读等等资源的使用。--//实际上RESULT_CACHE提示还支持一些选项shelflife,snapshot。--//测试参考链接:http://www.dbi-services.com/index.php/blog/entry/result......