文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个由整数数组组成的数组arrays,其中arrays[i]是严格递增排序的,返回一个表示所有数组之间的最长公共子序列的整数数组。

子序列是从另一个序列派生出来的序列,删除一些元素或不删除任何元素,而不改变其余元素的顺序。

示例1:
输入: arrays = [[1,3,4],[1,4,7,9]]
输出: [1,4]
解释: 这两个数组中的最长子序列是[1,4]。示例 2:
输入: arrays = [[2,3,6,8],[1,2,3,5,6,7,10],[2,3,4,6,9]]
输出: [2,3,6]
解释: 这三个数组中的最长子序列是[2,3,6]。示例 3:
输入: arrays = [[1,2,3,4,5],[6,7,8]]
输出: []
解释: 这两个数组之间没有公共子序列。限制条件:
2 <= arrays.length <= 100
1 <= arrays[i].length <= 100
1 <= arrays[i][j] <= 100
arrays[i] 是严格递增排序.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-subsequence-between-sorted-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 对第一个数组里的每个数,如果其在所有其它的数组里(有序,二分查找),那么就加入答案
class Solution {public:vector<int> longestCommomSubsequence(vector<vector<int>>& arrays) {vector<int> ans;for(auto num : arrays[0]){bool exist = true;for(int i = 1; i < arrays.size(); ++i){if(bs(arrays[i], num) == -1){exist = false;break;}}if(exist)ans.push_back(num);}return ans;}int bs(vector<int>& arr, int t){int l = 0, r = arr.size()-1, mid;while(l <= r){mid = (l+r)>>1;if(arr[mid] < t)l = mid+1;else if(arr[mid] > t)r = mid-1;elsereturn mid;}return -1;}
};

32 ms 15 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1940. 排序数组之间的最长公共子序列(二分查找)相关推荐

  1. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  2. LeetCode 1035. 不相交的线(最长公共子序列DP)

    文章目录 1. 题目 2. 解题 1. 题目 我们在两条独立的水平线上按给定的顺序写下 A 和 B 中的整数. 现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == ...

  3. LeetCode 1552. 两球之间的磁力(极小极大化 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力. Rick 有 n 个空的篮子,第 i 个 ...

  4. leetcode 1143. Longest Common Subsequence | 1143. 最长公共子序列(动态规划,暴力递归->傻缓存->dp)

    题目 https://leetcode.com/problems/longest-common-subsequence/ 题解 经典的 暴力递归 -> 傻缓存 -> dp 题目,以 &qu ...

  5. LeetCode高频题:最长公共子序列,玩游戏A和游戏B,两兄弟加起来最多可以获得多少奖品

    LeetCode高频题:最长公共子序列,玩游戏A和游戏B,两兄弟加起来最多可以获得多少奖品? 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面 ...

  6. 动态规划套路在最长公共子串、最长公共子序列和01背包问题中的应用

    2019独角兽企业重金招聘Python工程师标准>>> 适合动态规划(DP,dynamic programming)方法的最优化问题有两个要素:最优子结构和重叠子问题. 最优子结构指 ...

  7. 蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)

    问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...

  8. 蓝桥杯 ADV-202 算法提高 最长公共子序列

    问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...

  9. 字符串最长公共子序列python_求解两个字符串的最长公共子序列

    一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence).比如字符串1:BDCABA:字符串2:ABCBDAB 则这两个字符串的最长公共子序列长 ...

最新文章

  1. Google 在印度建立 AI 实验室,致力于农业、医疗、教育
  2. sql语句中 时间数值转换为时间格式函数
  3. MyBatis基于注解的使用
  4. 微信OPENID授权方法
  5. etcd 多台服务器集群
  6. 全套Python数据分析常用命令速查表!PDF文档限时分享
  7. Linux 用C/C++创建新文件并写入内容
  8. 一篇文章详解大数据技术和应用场景
  9. 牛人和普通人的区别在于思维方式!
  10. 从头开始-02.C语言基础
  11. nodejs pm2教程(转载)
  12. Linux系统安装sentaurus,Synopsys Sentaurus_vA_2008.09-SP1安装详解.pdf
  13. 显著性检测(二)Spatio-temporal Saliency Detection Using Phase Spectrum of Quaternion Fourier Transform
  14. jq 登陆界面 php,jquery实现用户登陆界面技术解答
  15. GTK构件之杂项构件
  16. SQL AlawaysOn 之三:SQL服务器加入域
  17. 新出免费字体——阿里巴巴普惠字体(附安装使用教程)
  18. 关于Android如何集成QQ登录及分享
  19. matlab实现车辆自适应巡航系统acc控制
  20. 为什么rand()每次产生的随机数都一样

热门文章

  1. android 按键会触发ontouch吗?_Android实现炫酷的拖拽浮动按钮
  2. JavaWeb笔记01-XML
  3. python中自动化办公 【笔记】
  4. 在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法
  5. python redis 性能测试台_Redis性能测试
  6. S2-016、S2-017
  7. iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方...
  8. JavaScript权威指南(第5版)pdf
  9. 【u204】高级砝码称重
  10. mvc一对多模型表单的快速构建