首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
09-19 11:21
门头沟学院 推荐算法
26秋招|第二个offer来了
阿里云动作还是蛮快的,如hr所说差不多等了10天左右,流程也短只有三面
点赞
评论
收藏
分享
09-19 14:17
门头沟学院 Java
张学良当年带兵入关也才10万人
看到这个还是很震惊,黑龙江都要这么多人,不敢想象一线城市的竞争会有多大
皮格吉:
还是太听话了。打进长安和考进长安哪个容易
点赞
评论
收藏
分享
09-21 00:03
门头沟学院 Unity3D客户端
语塞了
面试拷打成m:
我感觉他说的挺对的,感觉我找不到工作也要去送外卖了,至少饿不死
点赞
评论
收藏
分享
09-20 15:18
门头沟学院 嵌入式软件工程师
浙江大华 嵌入式开发面经
1、自我介绍2、用C多还是C++多3、全局变量、静态变量 存储位置4、大端&小端 区别5、栈的作用6、.data段,bss段区别7、strcopy和memcopy的区别8、tcp和udp区别9、项目的操作系统10、反问环节时间不长,问题难度也不大。补充时间线:8.27投简历,9.1性格测试,9.2专业测试,9.7约面,9.9电话面试。
查看9道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
秋招完全失败,想和美团字节爆了😅
1.9W
2
...
机械面试八股之机械设计高频考点
1.5W
3
...
offer还在路上, 但段子已经杀疯了!
1.3W
4
...
签完三方了,分享下我的谈薪小技巧
1.0W
5
...
拼尽全力背八股依然被问懵
7871
6
...
度小满Java一面
5052
7
...
神评第二期:本季最佳演技奖:假装不在乎的应届生们
3542
8
...
深圳停工了,我将以牛友单身起誓换来假期
3349
9
...
双非拿下字节转正,我想我做对了这些事情
3268
10
...
小红书这池子这么大吗
3236
创作者周榜
更多
正在热议
更多
#
面试时间长是好事吗?
#
20959次浏览
182人参与
#
如何看待应届生身份?
#
150482次浏览
1516人参与
#
思朗科技求职进展汇总
#
4851次浏览
89人参与
#
提名点击就挂的公司
#
26211次浏览
126人参与
#
入职跑路最快的一次经历
#
4057次浏览
57人参与
#
校招谈薪技巧
#
8085次浏览
170人参与
#
乐堡互娱校招
#
6143次浏览
93人参与
#
___岗狗都不干,我干!
#
2622次浏览
29人参与
#
拿到offer之后,可以做些什么
#
4802次浏览
55人参与
#
双非本科的出路是什么?
#
149315次浏览
1334人参与
#
国企秋招,你投了吗?
#
2488次浏览
39人参与
#
你在职场中沾染到的“坏”习惯
#
2632次浏览
39人参与
#
面试被问第一学历差时该怎么回答
#
168503次浏览
1095人参与
#
机械/制造每日一题
#
66105次浏览
1080人参与
#
大学四年该怎么过,才不算浪费时间?
#
10195次浏览
67人参与
#
秋招后遗症
#
34657次浏览
295人参与
#
你投递的公司有几家约面了?
#
132006次浏览
901人参与
#
机械人,你在招聘流程中的企业有哪些?
#
31538次浏览
236人参与
#
TCL华星光电工作体验
#
4562次浏览
19人参与
#
材料人的华为红黑体验
#
29462次浏览
171人参与
#
生物制药/化工校招攻略
#
58707次浏览
313人参与
#
饿了么求职进展汇总
#
74146次浏览
677人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务