剑指 Offer II 115. 重建序列
剑指 Offer II 115. 重建序列
题目描述
给定一个长度为 n 的整数数组 nums ,其中 nums 是范围为 [1,n] 的整数的排列。还提供了一个 2D 整数数组 sequences ,其中 sequences[i] 是 nums 的子序列。
检查 nums 是否是唯一的最短 超序列 。最短 超序列 是 长度最短 的序列,并且所有序列 sequences[i] 都是它的子序列。对于给定的数组 sequences ,可能存在多个有效的 超序列 。例如,对于 sequences = [[1,2],[1,3]] ,有两个最短的超序列 ,[1,2,3] 和 [1,3,2] 。
而对于 sequences = [[1,2],[1,3],[1,2,3]] ,唯一可能的最短 超序列 是 [1,2,3] 。[1,2,3,4] 是可能的超序列,但不是最短的。
如果 nums 是序列的唯一最短 超序列 ,则返回 true ,否则返回 false。
子序列 是一个可以通过从另一个序列中删除一些元素或不删除任何元素,而不改变其余元素的顺序的序列。来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/ur2n8P
思路
因为只有子序列中出现相邻的数对,才可以判断出nums
中存在这样的数对,所以只需要对子序列进行一次遍历,对于出现的数对进行标记,最终检验n
个数,如果都已被标记,就说明符合要求,否则就不符合。
代码
class Solution {
public:bool sequenceReconstruction(vector<int>& nums, vector<vector<int>>& sequences) {int n = nums.size();int s = sequences.size();int judge[10005]={0};int a[10005] = {0};for(int i=0;i<n;i++){a[nums[i]]=i;}for(int i=0;i<s;i++){int ss=sequences[i].size();for(int j=0;j<ss-1;j++){if(a[sequences[i][j+1]]-a[sequences[i][j]]==1)judge[a[sequences[i][j]]]=1;}}int ans=0;for(int i=0;i<n;i++)ans+=judge[i];return ans+1==n; }
};
收获
- 我这里对于偏序关系的映射是用了普通的一个数组,也可以使用
unordered_map
进行操作; - 本题还可以使用拓扑排序做,有时间补。
剑指 Offer II 115. 重建序列相关推荐
- Leetcode刷题笔记——剑指offer II (六)【图】
文章目录 图 695. 岛屿的最大面积 剑指 Offer II 106. 二分图 (每条边的两个结点都来自不同的集合) 剑指 Offer II 107. 矩阵中的距离 (最短路问题,建图,BFS) 剑 ...
- LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和
剑指 Offer II 056. 二叉搜索树中两个节点之和 Ideas 这题有点类似一个组合题,首先是通过二叉树遍历得到一个序列,然后再通过LeetCode Algorithm 1. 两数之和的方法查 ...
- Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】
目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...
- 剑指 Offer II 027. 回文链表
剑指 Offer II 027. 回文链表: 题目链接 :剑指 Offer II 027. 回文链表 题目:给定一个链表的 头节点 head ,请判断其是否为回文链表. 如果一个链表是回文,那么链表节 ...
- 剑指 Offer II 014. 字符串中的变位词
剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...
- 剑指 Offer II 108. 单词演变
链接:剑指 Offer II 108. 单词演变 题解: class Solution { public:int ladderLength(string beginWord, string endWo ...
- 剑指 Offer II 044. 二叉树每层的最大值
链接:剑指 Offer II 044. 二叉树每层的最大值 题解: /*** Definition for a binary tree node.* struct TreeNode {* int va ...
- 剑指 Offer II 117. 相似的字符串
链接:剑指 Offer II 117. 相似的字符串 题解: 1.建设图 2.bfs遍历 class Solution { public:int numSimilarGroups(vector< ...
- 剑指 Offer II 110. 所有路径
链接: l剑指 Offer II 110. 所有路径 代码:代码没通过 class Solution { public:vector<vector<int>> allPaths ...
最新文章
- mac-address-table static命令的使用
- 大厂常见笔试题 滑动窗口内数的和
- 计算机基础知识考试模拟试题,计算机基础知识模拟试题及答案
- c语言猴子选大王指针,C语言描述怎么用循环队列实现猴子选大王
- 开源数据屏蔽 数据加密_数据屏蔽或更改行为信息
- 第一章 密码学和加密交易的介绍
- java中的强软弱虚_详解Java的四种引用——强软弱虚,颠覆你的认知!
- Python获取网络中的存活主机以及哪些主机是Linux
- 图像处理笔记——边缘检测算子
- excel如何根据身份证批量提取员工年龄?
- 进程间通信:通俗理解信号量方式
- 盘点2017 CES展会所有亮眼黑科技 (上)
- Photoshop保存图片时闪退
- 写技术文档需要注意什么
- 我那迷途知返的小羊-linux修复DNS解析问题
- php apc.dll,php_apc.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
- GitHub上嵌入式相关的高星开源项目
- 如何修改文件的创建时间(回忆录)
- 如何免费使用cdn资源[棋牌游戏服务器配置]
- ENVI教程:InSAR技术,相位解缠