训练营打卡Day57
训练营打卡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相关推荐
- 训练营打卡Day45
训练营打卡Day45 文章目录 训练营打卡Day45 题105:[70. 爬楼梯](https://leetcode.cn/problems/climbing-stairs/) 思路 代码 题106: ...
- 阿里天池龙珠训练营打卡2
阿里天池龙珠训练营打卡2 文章目录 列表添加元素 删除列表中的元素 获取列表的元素 列表的一些其他方法 字符串常用内置方法 字符串格式化 列表配合集合去重 列表添加元素 list.append(obj ...
- 孤尽训练营打卡日记day28--第四周总结
前言 光阴似箭,日月如梭.转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾. 第一次课 单元测试和系统安全规约 什么是单元测试? 对软件组成单元进行的测试,其 ...
- 孤尽训练营打卡日记day14--第二周总结
前言 光阴似箭,日月如梭!跟着孤尽老师学习的第二周也即将结束,训练营的日子也已经过去了一半.古人云,学而不思则罔,思而不学则殆.今天我们来对第二周的学习做个总结. 内容回顾 day08 首先,孤尽老师 ...
- 孤尽训练营打卡日记day24--系统安全规约
前言 现在是大数据的时代,数据是非常重要的,一张照片就有可能泄漏了你的位置信息.在我们的系统中,安全一直是老生常谈的话题,怎么维护我们的系统安全,在我们日常开发中,怎么避免出现安全问题,我们跟着Joe ...
- 孤尽训练营打卡日记day04--MySQL优化
前言 数据库在系统中是非常重要的一环,当数据量大的时候,数据库就会有瓶颈,也就是查询变慢,我们需要对数据库进行优化 建表时优化 Schema 和数据类型优化 整数 TinyInt,SmallInt,M ...
- Day17 训练营打卡
110. 平衡二叉树 - 力扣(LeetCode) 俩递归方法 257. 二叉树的所有路径 - 力扣(LeetCode) StringBuilder && 往里插路径的特点 404. ...
- 孤尽训练营打卡日记day19--OAuth2基础
前言 我们现在的系统架构都是微服务的架构,也就是说,一个完整的功能,是由后台多个工程一起完成的.那么就会有一个问题,明明是多个工程,但是我们只需要登录一次,这是怎么实现的呢?今天我们跟着刘雪松老师一起 ...
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ
算法训练营打卡第二天,今天的前两道题目重点练习了双指针的用法,最后一道题目将边界条件的限定作为关键点,额外锻炼了逻辑能力. LeetCode977.有序数组的平方 题目链接 https://leetc ...
最新文章
- Double Precision Format(DPF)
- SAP EWM - 其他主数据 - 承运方
- linux日志发送,Linux中将执行过的命令记录到日志并发送到服务器的方法
- 到底哪些人适合学Python?适合学Python的5类人
- CSS3的常用属性(一)
- python的ogr模块_python GDAL/OGR模块安装注意事项
- 【LeetCode笔记】72. 编辑距离(Java、字符串、动态规划)
- 一汽大众t一roc_15万元预算能买到的紧凑型SUV——一汽-大众T-ROC探歌
- linux卸载文件系统什么意思,Linux文件系统的安装和卸载
- 使用Servlet技术~登录-02
- python最全画地图,可视化数据
- 从大数据的角度看 房价一定会下跌
- C语言中ret的作用,c-RET抑制剂 | c-RET Inhibitor
- 《黑客与画家》读书笔记(三)
- ‘M-BM-‘ character
- CentOS7安装PHP开发环境1-源码安装Nginx
- 大型数据库Oracle基础练习
- Android系统编译小总结
- linux 转发永久修改,linux-networking – 如何使用systemd在Linux中正确永久启用ip转发?...
- 计算机开机界面,电脑开机一直出现bios界面
热门文章
- 混合竞价模式下,开发者如何制定价格策略?
- macbook系统占用硬盘大_mac book pro 系统占用的硬盘空间太大怎么办?
- iphone苹果手机点击屏幕就亮怎么关闭
- openwrt查看网卡型号
- dpdk-22.07.0-testpmd测试进程响应icmp请求
- vsftpd 配置(中)
- 新冠疫情可视化(7月7日,7月8日)
- PWA(Progressive Web App)入门系列:(一)PWA简介
- JS和CSS的引入/写入位置应该放在哪里?
- 新款HTTP代理抓包工具Proxyman(界面美观、功能强大)