首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
我是二哈
浙江外国语学院 Java
发布于浙江
关注
已关注
取消关注
@Gxin316:
最长公共子序列
AC代码:class Solution {public: int longestCommonSubsequence(string text1, string text2) { int dp[1005][1005] = {0}; int n = text1.size(); int m = text2.size(); for (int i = 1; i <= n; i++){ for (int j = 1; j <= m; j++){ if (text1[i-1] == text2[j-1]) dp[i][j] = 1 + dp[i-1][j-1]; else{ dp[i][j] = max(dp[i][j-1], dp[i-1][j]); } } } return dp[n][m]; }};1.max里面为何只有两种情况,为何不需要比较dp[i-1][j-1]的情况?原因:dp[i][j-1]的值与dp[i-1][j]的值都一定大于等于dp[i-1][j-1]所以无需判断。2.编写代码输出 最长公共子序列的长度、其中一个最长公共子序列。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)string text1, text2;int dp[1005][1005] = {0};int longestCommonSubsequence(string text1, string text2) { int n = text1.size(); int m = text2.size(); // 不再重新定义 dp,直接使用全局 dp 数组 for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (text1[i-1] == text2[j-1]) dp[i][j] = 1 + dp[i-1][j-1]; else dp[i][j] = max(dp[i][j-1], dp[i-1][j]); } } return dp[n][m];}void print(int i, int j) { if (i == 0 or j == 0) return; if (dp[i][j] == dp[i - 1][j - 1] + 1) { print(i - 1, j - 1); cout << text1[i - 1]; } else if (dp[i][j] == dp[i - 1][j]) { print(i - 1, j); } else { print(i, j - 1); }}int main() { ios; cin >> text1 >> text2; int n = text1.size(); int m = text2.size(); cout << longestCommonSubsequence(text1, text2) << '\n'; // 输出 LCS 长度 print(n, m); // 通过递归函数打印 LCS cout << '\n'; return 0;}通过递归函数从LCS末尾开始溯源。当dp[i][j] == dp[i - 1][j - 1] + 1说明上一位置在当前位置的左上角,当dp[i][j] == dp[i - 1][j]说明上一位置在当前位置的左边,当dp[i][j] == dp[i][j - 1]说明上一位置在当前位置的上边,
点赞 2
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
11-24 09:31
科大讯飞_语言算法工程师(准入职员工)
科大讯飞内推,科大讯飞内推码
✨入职感受 ①公司环境很好 我在讯飞小镇办公,园区外部环境、就餐环境、办公环境都不很不错,园区内还有卡旺卡、瑞幸、罗森、药房、轻食店等,购物方便 ②福利待遇也不错 工资2多,每个月有200餐补,可以申请免费宿舍,打车可以用内部ai拼(乘客免费,司机有补贴) ③饭不太好吃 中午吃的排骨麻辣香锅,味道有点一般,排骨有点腥,炸猪皮个人感觉有点腻,吃了一点实在吃不下了 ④工作氛围比较轻松 带我的两个姐姐都很好,说话很温柔,其中一个只比我大一点点,相处起来很轻松,主动带我吃饭、跟我介绍园区,还请我喝了东西 ⑤通勤有点麻烦 学校离讯飞小镇太远了,班车在学校南门,我宿舍在西门,坐班车不方便。而且班车7点多出...
科大讯飞公司氛围 454人发布
点赞
评论
收藏
分享
11-20 17:06
西南石油大学 数据分析师
数字马力面经
笔试(部分,不全)依赖注入SpringKafka软件工程模型Docker大模型预训练的目的集合JVM参数含义SLA协议幂等性类加载器的种类动态SQL标签Saas多租户服务单元测试编程题 drop table if exists exam_record; CREATE TABLE exam_record ( id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', uid int NOT NULL COMMENT '用户ID', exam_id int NOT NULL COMMENT '试卷ID', start_time datetime NOT NU...
晨晨owo:
笔试好难
发面经攒人品
点赞
评论
收藏
分享
11-21 00:05
门头沟学院 Java
手子不赖
手子开的挺高,不错呢,白菜也是真白菜🥬
校招薪资来揭秘
点赞
评论
收藏
分享
11-20 12:23
柠檬微趣_HR(准入职员工)
柠檬微趣内推,柠檬微趣内推码
柠檬微趣前端一面1. 自我介绍2. JS定义变量方式?let const var区别?3. 为什么用const定义变量不可以被修改?底层原理?一定不能改?4. `let a = 1; let a = 2;` 会发生什么?会报什么错?5. `var a = 1; var a = 2;` 可以吗?`var a = 1; let a = 2;` 呢?6. `var`特性(如变量提升)?`console.log(a); var a = 1;` 的结果是什么?7. JS中基本数据类型?分别存储在哪里(栈/堆)?8. `let a = {}; b = a; `修改b会影响a吗(会)如何避免(深拷贝)9. ...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
逆流河上万仙退
6807
2
...
听说百度年底裁员大地震,赔偿n+3?
4254
3
...
【现金奖励】26秋招薪资爆料征集,瓜分现金红包!
4159
4
...
挑战一篇讲完实习转正
4065
5
...
大厂校招选人的核心逻辑是什么?
3403
6
...
腾讯IEG后端日常实习一面
3189
7
...
字节谈薪经验帖
2959
8
...
进大厂后的我沦为带饭丫鬟
2764
9
...
大厂病??我来说说
2586
10
...
十一月心想事成
2402
创作者周榜
更多
正在热议
更多
#
你想跟着什么样领导?
#
4266次浏览
72人参与
#
你的秋招白月光和意难平公司
#
5736次浏览
65人参与
#
百度秋招
#
55583次浏览
394人参与
#
找实习是选平台还是选业务?
#
9281次浏览
140人参与
#
什么样的背景能拿SSP?
#
116904次浏览
410人参与
#
从夯到拉,评价编程语言
#
4499次浏览
46人参与
#
秋招签约后的心态变化
#
105705次浏览
923人参与
#
分享一个让你热爱工作的瞬间
#
47092次浏览
412人参与
#
每个月花钱最多的地方是?
#
4698次浏览
69人参与
#
职场吐槽大会
#
289267次浏览
2109人参与
#
xxx岗位的一天
#
9086次浏览
89人参与
#
十一月总结
#
12275次浏览
142人参与
#
你面试时吹过最大的牛
#
18927次浏览
111人参与
#
作业帮求职进展汇总
#
76969次浏览
519人参与
#
实习学到最有价值的工作习惯
#
43236次浏览
378人参与
#
AI“智障”时刻
#
5590次浏览
51人参与
#
饿了么求职进展汇总
#
79987次浏览
684人参与
#
实习生如何通过转正
#
111383次浏览
1421人参与
#
你秋招想去哪些公司
#
67380次浏览
1724人参与
#
想给25届机械人的秋招建议
#
37925次浏览
237人参与
#
应届生第一份工作最好去大厂吗?
#
103986次浏览
946人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务