训练营打卡Day57

文章目录

  • 训练营打卡Day57
    • 题121:[1143. 最长公共子序列](https://leetcode.cn/problems/longest-common-subsequence/)
      • 思路
      • 代码
    • 题122:[1035. 不相交的线](https://leetcode.cn/problems/uncrossed-lines/)
      • 思路
      • 代码
    • 题123:[53. 最大子数组和]https://leetcode.cn/problems/maximum-subarray/)
      • 思路
      • 代码

题121:1143. 最长公共子序列

思路

  • 建立一个二维 dp 数组,并在 dp[i][j] 中存储以 text1[0…i-1] 和 text2[0…j-1] 结尾的最长公共子序列的长度。
  • 递推关系式是如果 text1[i-1] == text2[j-1],那么 dp[i][j] = dp[i-1][j-1] + 1;否则 dp[i][j] = max(dp[i-1][j], dp[i][j-1])。
  • 最终,dp[text1.size()][text2.size()] 的值就是最长公共子序列的长度。

代码

class Solution {public:int longestCommonSubsequence(string text1, string text2) {vector< vector<int> >dp(text1.size()+1, vector<int>(text2.size()+1, 0));for(int i = 1; i<= text1.size();i++)for(int j = 1; j<= text2.size(); j++){if(text1[i-1] == text2[j-1])dp[i][j] = dp[i-1][j-1] + 1;else{dp[i][j] = max(dp[i-1][j], dp[i][j-1]);}}return dp[text1.size()][text2.size()];}
};

题122:1035. 不相交的线

思路

  • 它通过建立一个二维 dp 数组,并在 dp[i][j] 中存储在同时考虑 A 数组的前 i 个元素和 B 数组的前 j 个元素的情况下的最多不相交线段数量。
  • 递推关系式是如果 A[i-1] == B[j-1],那么 dp[i][j] = dp[i-1][j-1] + 1;否则 dp[i][j] = max(dp[i-1][j], dp[i][j-1])。
  • 最终,dp[A.size()][B.size()] 的值就是最多不相交线段数量。

代码

class Solution {public:int maxUncrossedLines(vector<int>& A, vector<int>& B) {vector<vector<int>> dp(A.size() + 1, vector<int>(B.size() + 1, 0));for (int i = 1; i <= A.size(); i++) {for (int j = 1; j <= B.size(); j++) {if (A[i - 1] == B[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}}return dp[A.size()][B.size()];}
};

题123:[53. 最大子数组和]https://leetcode.cn/problems/maximum-subarray/)

思路

  • 使用变量 sum 记录当前的和,并通过 max(sum+num, num) 更新它,从而在枚举过程中维护当前的最大子序和。
  • 最终,ans 记录的最大值就是整个序列的最大子序和。

代码

class Solution {public:int maxSubArray(vector<int>& nums) {int ans = INT32_MIN;int sum = 0;for(const int& num: nums){sum = max(sum+num, num);ans = max(sum, ans);}return ans;}
};

训练营打卡Day57相关推荐

  1. 训练营打卡Day45

    训练营打卡Day45 文章目录 训练营打卡Day45 题105:[70. 爬楼梯](https://leetcode.cn/problems/climbing-stairs/) 思路 代码 题106: ...

  2. 阿里天池龙珠训练营打卡2

    阿里天池龙珠训练营打卡2 文章目录 列表添加元素 删除列表中的元素 获取列表的元素 列表的一些其他方法 字符串常用内置方法 字符串格式化 列表配合集合去重 列表添加元素 list.append(obj ...

  3. 孤尽训练营打卡日记day28--第四周总结

    前言 光阴似箭,日月如梭.转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾. 第一次课 单元测试和系统安全规约 什么是单元测试? 对软件组成单元进行的测试,其 ...

  4. 孤尽训练营打卡日记day14--第二周总结

    前言 光阴似箭,日月如梭!跟着孤尽老师学习的第二周也即将结束,训练营的日子也已经过去了一半.古人云,学而不思则罔,思而不学则殆.今天我们来对第二周的学习做个总结. 内容回顾 day08 首先,孤尽老师 ...

  5. 孤尽训练营打卡日记day24--系统安全规约

    前言 现在是大数据的时代,数据是非常重要的,一张照片就有可能泄漏了你的位置信息.在我们的系统中,安全一直是老生常谈的话题,怎么维护我们的系统安全,在我们日常开发中,怎么避免出现安全问题,我们跟着Joe ...

  6. 孤尽训练营打卡日记day04--MySQL优化

    前言 数据库在系统中是非常重要的一环,当数据量大的时候,数据库就会有瓶颈,也就是查询变慢,我们需要对数据库进行优化 建表时优化 Schema 和数据类型优化 整数 TinyInt,SmallInt,M ...

  7. Day17 训练营打卡

    110. 平衡二叉树 - 力扣(LeetCode) 俩递归方法 257. 二叉树的所有路径 - 力扣(LeetCode) StringBuilder && 往里插路径的特点 404. ...

  8. 孤尽训练营打卡日记day19--OAuth2基础

    前言 我们现在的系统架构都是微服务的架构,也就是说,一个完整的功能,是由后台多个工程一起完成的.那么就会有一个问题,明明是多个工程,但是我们只需要登录一次,这是怎么实现的呢?今天我们跟着刘雪松老师一起 ...

  9. 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ

    算法训练营打卡第二天,今天的前两道题目重点练习了双指针的用法,最后一道题目将边界条件的限定作为关键点,额外锻炼了逻辑能力. LeetCode977.有序数组的平方 题目链接 https://leetc ...

最新文章

  1. Double Precision Format(DPF)
  2. SAP EWM - 其他主数据 - 承运方
  3. linux日志发送,Linux中将执行过的命令记录到日志并发送到服务器的方法
  4. 到底哪些人适合学Python?适合学Python的5类人
  5. CSS3的常用属性(一)
  6. python的ogr模块_python GDAL/OGR模块安装注意事项
  7. 【LeetCode笔记】72. 编辑距离(Java、字符串、动态规划)
  8. 一汽大众t一roc_15万元预算能买到的紧凑型SUV——一汽-大众T-ROC探歌
  9. linux卸载文件系统什么意思,Linux文件系统的安装和卸载
  10. 使用Servlet技术~登录-02
  11. python最全画地图,可视化数据
  12. 从大数据的角度看 房价一定会下跌
  13. C语言中ret的作用,c-RET抑制剂 | c-RET Inhibitor
  14. 《黑客与画家》读书笔记(三)
  15. ‘M-BM-‘ character
  16. CentOS7安装PHP开发环境1-源码安装Nginx
  17. 大型数据库Oracle基础练习
  18. Android系统编译小总结
  19. linux 转发永久修改,linux-networking – 如何使用systemd在Linux中正确永久启用ip转发?...
  20. 计算机开机界面,电脑开机一直出现bios界面

热门文章

  1. 混合竞价模式下,开发者如何制定价格策略?
  2. macbook系统占用硬盘大_mac book pro 系统占用的硬盘空间太大怎么办?
  3. iphone苹果手机点击屏幕就亮怎么关闭
  4. openwrt查看网卡型号
  5. dpdk-22.07.0-testpmd测试进程响应icmp请求
  6. vsftpd 配置(中)
  7. 新冠疫情可视化(7月7日,7月8日)
  8. PWA(Progressive Web App)入门系列:(一)PWA简介
  9. JS和CSS的引入/写入位置应该放在哪里?
  10. 新款HTTP代理抓包工具Proxyman(界面美观、功能强大)