LeetCode #444. Sequence Reconstruction

leetcode刷题笔记-topological sort拓扑排序(DFS) 207.Course Schedule 找环 There are a total ofncourses you have to take, labeled from0ton-1. Some courses may have prerequisites, for example to take course 0 you have to first take course 1, whi... 阅读详情

题目描述:

Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. The org sequence is a permutation of the integers from 1 to n, with 1 ≤ n ≤ 104. Reconstruction means building a shortest common supersequence of the sequences in seqs (i.e., a shortest sequence so that all sequences in seqs are subsequences of it). Determine whether there is only one sequence that can be reconstructed from seqs and it is the org sequence.

Example 1:

Input: org: [1,2,3], seqs: [[1,2],[1,3]]

Output: false

Explanation: [1,2,3] is not the only one sequence that can be reconstructed, because [1,3,2] is also a valid sequence that can be reconstructed.

Example 2:

Input: org: [1,2,3], seqs: [[1,2]]

Output: false

Explanation: The reconstructed sequence can only be [1,2].

Example 3:

Input: org: [1,2,3], seqs: [[1,2],[1,3],[2,3]]

Output: true

Explanation: The sequences [1,2], [1,3], and [2,3] can uniquely reconstruct the original sequence [1,2,3].

Example 4:

Input: org: [4,1,5,2,6,3], seqs: [[5,2,6,3],[4,1,5,2]]

Output: true

UPDATE (2017/1/8):
The seqs parameter had been changed to a list of list of strings (instead of a 2d array of strings). Please reload the code definition to get the latest changes.

class Solution {
public:
    bool sequenceReconstruction(vector<int>& org, vector<vector<int>>& seqs) {
        //根据所有的子序列建图,那么利用拓扑排序,每次有且只能有一个入度为零的点,否则就不能保证唯一性
        //另外还要判断所有子序列的数字都在1-n的范围内,同时包含1-n的所有数字
        int n=org.size();
        unordered_map<int,unordered_set<int>> graph;
        unordered_map<int,int> indegree;
        for(vector<int>& seq:seqs)
        {
            for(int i=0;i<seq.size();i++)
            {
                int u=seq[i];
                if(u<=0||u>n) return false;
                if(indegree.count(u)==0) indegree[u]=0;
                if(graph.count(u)==0) graph[u]={};
                if(i<seq.size()-1)
                {
                    int v=seq[i+1];   
                    if(v<=0||v>n) return false; // seqs的数字超出范围
                    if(graph[u].count(v)) continue; // 避免重边
                    graph[u].insert(v);
                    indegree[v]++;
                }
            }
        }
        
        queue<int> q;
        for(int i=1;i<=n;i++)
        {
            if(indegree.count(i)==0) return false; // seqs中没有i
            if(indegree[i]==0) q.push(i);
        }
        
        vector<int> result;
        while(!q.empty())
        {
            if(q.size()!=1) return false;
            int i=q.front();
            q.pop();
            result.push_back(i);
            for(int neighbor:graph[i])
            {
                indegree[neighbor]--;
                if(indegree[neighbor]==0) q.push(neighbor);
            }
            indegree.erase(i);
            graph.erase(i);
        }
        return result==org;
    }
};

 

VisionPro动态坐标系构建:CogFixtureTool与CogFixtureNPointToNPointTool实战解析 本文深入解析了VisionPro中动态坐标系构建的核心技术,重点对比了CogFixtureTool与CogFixtureNPointToNPointTool的原理与应用。通过实战案例,阐述了如何利用坐标跟随(Fixturing)技术解决工业视觉检测中因零件位置偏移导致的测量不准问题,实现从“固定”到“随动”的思维跃迁,从而构建稳定、精准的检测程序。 阅读详情

相关推荐

华为灵衢UB总线介绍

华为发布"灵衢"(UB)超节点互联协议,旨在构建支持AI大模型计算的基础设施。该协议采用统一内存语义和对等架构,使设备可直接访问远程内存,实现资源池化。技术突破包括2.1微秒超低时延和TB级带宽,支持64节点、52万张昇腾卡的集群互联。相比传统RDMA,"灵衢"更注重系统级资源调度,而非单纯数据传输。华为开放技术规范,推动生态建设,已有厂商开发兼容IP核。"灵衢"可适应x86、RISC-V等架构,未来将扩展至百万卡规模集群。

技术引领业务创新 4418

css对于字体和背景等属性的控制

字体(Font) css控制的字体属性包括font-family, font-style, font-variant, font-weight, font-size. 1.font-family: 由字体名(family-names)和字组名(generic families)两个部分组成.首先来看个实例,例:查看Jorux.com首页的css文件,可以看到以下代码: body { font...

前端基础入门学习线路 2381

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

Codeforces Round #444 (Div. 2) - C - Solution for Cube

传送门:点击打开链接题意:给出一个魔方,每个数字代表一种颜色,可以将每个面顺(逆)时针翻转九十度,问是否能让魔方的每个面颜色都相同。分析:乍一看就是个模拟,总共有6种翻转情况,将每次翻转的情况进行判断就行了,结果写了很久的代码,代码有两百多行,精简之后还有一百多行,看来下别人的代码,代码很精简,只有几十行,学到了,后面发现并不需要代码去模拟翻转,手动模拟一下,直接判断6种情况下6个面的颜色是否一致...

常胜将军的博客 348

车窗标定工作流程

标定简单来说就是修改防夹参数来适配对应的车型,所有的防夹的参数在vers_userdef.h文件中定义。#标定内容。

qq_21274991的博客 4270

DaVinci Configurator BswM模块配置

BswM是AUTOSAR(Automotive Open System Architecture)系统架构中的模块之一,它是基础软件模块(BSW)之一。BswM全称为Basic Software Module Manager(基础软件模块管理器),它负责管理和协调其他BSW模块的行为和交互,以实现整个系统的功能。BswM可以被看作是一个状态机,通过监控系统的状态和事件触发,来控制其他BSW模块的运行状态和互相配合,以达到整个系统的预期行为。

qq_59258431的博客 3945

CodeForces Round #444 (Div.2)

A. Div. 64 题意 问你能不能去掉一些0和1使这个二进制数整除64 题解 就是判断100000是不是个子串 1 str = input() 2 l = len(str) 3 flag = 0 4 ok = 0 5 for i in range(l - 1, -1, -1): 6 if flag < 6 and str[i] =...

acuiyi4402的博客 288

STM32实战:增量式PID控制气体流量(附完整代码与调参技巧)

本文详细解析了如何在STM32平台上实现气体流量控制的增量式PID算法。内容涵盖从系统硬件架构选型、增量式PID算法原理与代码实现,到ADC采样滤波、PWM驱动配置等关键外设驱动,并提供了完整的参数整定技巧与工程调优实战指南,帮助开发者构建稳定可靠的气体流量控制系统。

rose2的博客 617

#444 – DockPanel 中的子元素不一定一直都是平铺显示(Children of DockPanel Don’t Always Have to be Stretched)

一般情况下,你将子元素停靠在DockPanel 控件中的一边,子元素会平铺当前条目的宽度或者高度显示。 但是,如果你使用子元素的HorizontalAlignment 属性(停靠在Top 或者Bottom)或者VerticalAlignment 属性(停靠在Left 或者Right),将会是子元素自动根据内容调整大小。 可以从下图看到,

Milo的专栏 993

手机直连低轨卫星通信:架构、关键技术和未来展望

【摘 要】借助低轨卫星星座全时全域覆盖优势,手机直连卫星通信预期成为6G重要特征之一。首先介绍了手机直连卫星的测试验证、标准化与商业项目发展现状。其次,介绍了基于透明转发、部分可再生处理、完全可再生处理、集成接入和回传的四种手机直连低轨卫星网络架构及组网方式。通过分析手机直连低轨卫星网络场景下高移动性与大传输时延等带来的接入与传输问题,提出对地面移动通信体制进行适应性改进的关键技术方案。最后,探讨了未来手机直连低轨卫星发展发向和潜在思路。通过上述阐述与分析,提供未来发展手机直连低轨卫星通信的可行路径。【关

fzq0625的博客 1707

电商行业分析爬虫:抓取行业数据,进行行业分析

电商行业数据分析对于市场研究、竞争分析和商业决策至关重要。通过爬取电商平台的数据,我们可以深入了解市场动态、消费者行为和商品销售情况。本文将介绍如何构建一个电商行业分析爬虫,抓取商品信息、销售数据和用户评价等,并进行数据分析。

u014481728的博客 1628

#444到1092

一个很简单的查询操作,怎么会出现这么无厘头的结果。看了下代码就是简单的等值查询,后端用Long进行接收。然后问了下chatgpt,444怎么编码可以得到1092,居然给出了16进制编码的答案,这要是google估计很难得到需要的答案。然后跟代码,在java.lang.Long里解析的时候 # 开头会判定为16进制,至此原因找到了。测试同学反馈根据id(整形)查询输入#444查询时返回了数据,并且不是想要的数据。结论:用了一段时间的chatgpt后,感觉效率比google高多了。

yanyuan904的专栏 624

【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)

- 从事WIFI相关开发或测试工作,经常要和信道、频宽、频率等打交道,本文仅将平时涉及的2.4G、5G、6G的信道、频宽、频率等做一总结。 - 一图胜万言,本文汇总了工作中经常用到的频谱图,保证全网最全!!! - 本博客地址,https://blog.csdn.net/qxhgd,欢迎各位关注,转发请注明出处。

一介草民,只为生活。 1万+

空-地-臂协同机器人系统:从ROS集成到多智能体作业实践

机器人操作系统(ROS)作为机器人软件开发的通用框架,通过提供节点通信、硬件抽象和工具集,实现了异构机器人模块的标准化集成。其核心原理在于基于发布/订阅和服务调用机制,构建松耦合的分布式系统,从而降低多传感器与执行器协同的复杂度。这一技术价值在于为复杂环境下的自主作业提供了可扩展的软件基础,尤其在巡检、物流、救援等场景中,能够整合无人机、移动底盘和机械臂的差异化能力。本文以“青云2号Plus”为例,深入探讨了如何基于ROS实现空-地-臂协同作业,涵盖SLAM建图、路径规划与机械臂控制等关键技术的工程化整合,

weixin_34306593的博客 460

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LeetCode题解(0444):序列重建(Python)

题目:原题链接(中等) 标签:图、拓扑排序 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 240ms (23.88%) Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def sequenceReconstruction(self, org: List[int], seqs: List[List[int]]) -> bool:

长行 617

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode 444. 序列重建(拓扑排序)

文章目录1. 题目2. 解题 1. 题目 验证原始的序列 org 是否可以从序列集 seqs 中唯一地重建。 序列 org 是 1 到 n 整数的排列,其中 1 ≤ n ≤ 104。 重建是指在序列集 seqs 中构建最短的公共超序列。(即使得所有 seqs 中的序列都是该最短序列的子序列)。 确定是否只可以从 seqs 重建唯一的序列,且该序列就是 org 。 示例 1: 输入: org: [1,2,3], seqs: [[1,2],[1,3]] 输出: false 解释: [1,2,3] 不是可以被重

Michael是个半路程序员 2480

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++ 程序设计:重建序列(LeetCode:444)

给定一个长度为 n 的整数数组 nums ,其中 nums 是范围为 [1,n] 的整数的排列。还提供了一个 2D 整数数组 sequences ,其中 sequences[i] 是 nums 的子序列。

信仰.的博客 828

【Leetcode】444. Sequence Reconstruction

题目地址: https://leetcode.com/problems/sequence-reconstruction/ 给定一个int数组AAA,再给定一个含有很多int序列的list,问AAA是否是list里所有序列的唯一父序列(序列ppp是序列qqq的父序列的含义是qqq是ppp子序列)。若不是父序列或者父序列不唯一都返回false。 可以用图论建模,将list里所有序列里的数抽象成顶点,如...

数学、算法爱好者的博客 818

bootstrap入门--栅格

bootstrap栅格入门

lickybay的博客 1682

Codeforces Round #444 (Div. 2)

二进制整除 非前导0统计 投掷骰子 嵌套分类讨论 玩转魔方 强行暴力匹配

Owen_Q的博客 491

【LeetCode】444. 序列重建

给定一个长度为n的整数数组nums,其中nums是范围为[1,n]的整数的排列。还提供了一个2D整数数组sequences,其中是nums的子序列。检查nums是否是唯一的最短。最短是的序列,并且所有序列都是它的子序列。对于给定的数组sequences,可能存在多个有效的。[1,2,3][1,3,2][1,2,3][1,2,3,4]如果nums是序列的唯一最短,则返回true,否则返回false。是一个可以通过从另一个序列中删除一些元素或不删除任何元素,而不改变其余元素的顺序的序列。[1,n]...

passnight的博客 752

leetcode:444. 序列重建

我们可以构建一张图,图中节点是nums中的每一个元素。如果1在2前就添加一条1→2的边。“1在2前、1在3前”让我们很容易想到拓扑排序。sequences 是怎么表示的。

OceanStar的博客 268

Codeforces Round #444 (Div. 2) C. Solution for Cube

C. Solution for CubeProblem Statement     During the breaks between competitions, top-model Izabella tries to develop herself and not to be bored. For example, now she tries to solve Rubik’s cube 2x2

Ephemeral 739

Codeforces Round #444 (Div. 2)-C-Solution for Cube(魔方一步还原)

C. Solution for Cube time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output During the breaks between competitions

信仰.的博客 613

cf div2 #444 (ABC)(D已补)

ABC三道大水题,自信满满锁了溜出自习室回寝睡觉,第二天起来发现变成两道题了,哭唧唧。 回头翻代码吃了一口大翔,少写了两行被自己gank了。 然后由于出题人的数据放错了导致D题一开始没人过,E和F零星有几个人,然后就洒富富跑去开F和E,数据改了重判之后D题人数飙升但是没什么时间了(一定是出题人的锅)。 好吧怪自己没把题目都看一遍,盲目跟榜会吃翔的,以后记得不管什么比赛都尽可能把所有题目都看一

Stupid_Turtle的博客 1655

LeetCode 444. Sequence Reconstruction Sequence不连续

Check whether the original sequenceorgcan be uniquely reconstructed from the sequences inseqs. Theorgsequence is a permutation of the integers from 1 to n, with 1 ≤ n ≤ 104. Reconstruction means building a shortest common supersequence of the sequence...

taoqick的专栏 351
上一篇: LeetCode #1146. Snapshot Array
下一篇: LeetCode #163. Missing Ranges
LawFile
博客等级 码龄10年 5粉丝 627原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值