day43

今天完成了三道动规的子序列题,有点难度。
最长递增子序列:
//dp[i]:下标为i时的最长递增子序列的长度
        //递推公式:
//if(nums[i] > nums[j]) dp[i] = max(dp[j] + 1, dp[i]);
        //初始化:全初始化为1
        //遍历顺序,两层for循环,外层i,内层j(j < i)

        if(nums.size() == 0) return 0;
        vector dp(nums.size(), 1);
        int result = 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[j] + 1, dp[i]);
                }
            }
            result = max(result, dp[i]);
        }
        return result;//不一定是以最后一个元素为结尾时是最长子序列

最长连续递增子序列:简单

两个数组间的最长重复数组:
//dp[i][j]:以i-1为结尾的A和以j-1为结尾的B的最长重复子数组的长度
        //注意: “以下标i - 1为结尾的A” 标明一定是 以A[i-1]为结尾的字符串 
        //递推公式:
        //if(nums[i] == nums[j]) dp[i][j] = dp[i-1][j-1] + 1;
        //初始化,全初始化为0,因为dp[i][0],dp[0][j]其实没有意义,而其他的则会被覆盖
        //遍历顺序:两层for循环
        if(nums1.size() == 0 || nums2.size() == 0) return 0;
        vector> dp(nums1.size() + 1, vector(nums2.size() + 1, 0));
        int result = 0;
        for(int i = 1; i <= nums1.size(); i++)
        {
            for(int j = 1; j <= nums2.size(); j++)
            {
                if(nums1[i-1] == nums2[j-1])//是i-1,j-1时的元素相等
                {
                    dp[i][j] = dp[i-1][j-1] + 1;
                }
                result = max(dp[i][j], result);//持续记录最大值
            }
        }
        return result;

这几天终于把Reactor框架学完了!
全部评论

相关推荐

2024-12-02 20:32
已编辑
南昌航空大学 Java
我曾经一直认为,高效率工作或者学习,是非常有必要的,这也是我喜欢写程序的原因,因为程序的效率比人类高,一个好用的程序或许能省很多时间。但是,现在,我改变了我的看法。作为一个实习生,我把分配到的活都在规定时间内干完,然后六点准时下班,然而在最近得知了自己不被领导看好的消息。我们这一共四个实习生,我总是每次准点打卡下班,而其他实习生都比我晚。或许是我分配的活比他们少,或许是其他原因,但我都保证了我的需求在规定时间内完成,甚至提前完成。我觉得至少在任务上,我是过关的。然而今天和mt聊了,他说ld不看好我,因为我每次六点准时走,从不加班(而ld也说实习生加班不做要求),然而实际情况并非如此,像mt或者其他正式员工的晋升,和工时离不开关系,在大家做的需求难度差不多的情况下,工时高就成为了晋升的标准。而我们实习生转正,工时或许成为了潜在的加分项。并且上个月,工时最高的实习生被评为了优秀实习生。我并不想说其他实习生怎么怎么样,我和他们一起吃饭,也玩的挺好。但我很痛恨这种潜在的加班内卷,毫无意义的在工位上消耗多余的时间,能让公司发展的更好吗?晋升和工时正相关,能帮公司筛选出优秀的员工吗?也许真的有人工作多需要通过加班,在规定的时间完成需求,但以现在的风气来看,这种并非多数。我曾经以为技术是晋升的标准,努力学习提升技术就能获得晋升的机会,但我现在不这么认为了。我知道公司上级只是想通过工时这种数据,让老板知道自己花的工资有价值,但这样只会让我更不热爱工作。发表一下自己的感想罢了,我不奢望能改变什么,因为我也成为了加班到八点的“优秀员工”。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务