AlgoMooc
← 返回题库

N0031. 0527-Skill执行链完整性检测

简单通过率 67% · 提交 9 · 通过 6
模拟

在 AI 助手的技能系统中,执行链由多个 Skill 按顺序排列。每个 Skill 有一个类型标记: - type[i] = 0: 基础类型 Skill,无依赖,可以独立执行 - type[i] = 1: 扩展类型 Skill,依赖前一个 Skill 执行 - type[i] = 2: 高级类型 Skill,依赖前两个 Skill 执行 执行链的完整性规则: 1. 首元素限制:执行链不能以扩展类型(type = 1)或高级类型(type = 2)开头,必须以基础类型(type = 0)开头 2. 依赖传递: - 扩展类型(type = 1)的直接前驱必须是基础类型(type = 0) - 高级类型(type = 2)的前驱和前前驱都必须是基础类型(type = 0) 3. 链式依赖:每两个相邻的基础类型之间最多允许存在一个扩展类型或高级类型 给定一个类型数组 type,找到最长的连续 Skill 子链,使得子链满足完整性规则。返回该子链的长度。 数据规模 0 ≤ type.length ≤ 2000

输入描述

一个int数组,表示类型数组 type。

输出描述

一个整数,表示满足条件的最长子链的长度。

示例

示例 1

输入

3
0,0,0

输出

3

说明:全为基础类型,满足规则(不违反任何约束)

示例 2

输入

4
0,1,0,1

输出

4

说明:0→1 ✓ (基础后接扩展) 1→0 ✓(扩展后接基础) 0→1 ✓(基础后接扩展) 无违反规则,整个链有效

示例 3

输入

3
2,0,0

输出

2

说明:首元素高级类型违规,从位置 1 开始 [0, 0] 长度 2

示例 4

输入

5
0,1,0,0,2

输出

5

说明:0→1 ✓ (基础后接扩展) 1→0 ✓(扩展后接基础) 0→0 ✓ (基础后接基础) 0→0→2✓ (基础、基础后接高级) 无违反规则,整个链有效

时间限制 1000 ms · 内存限制 128 MB

写完代码点「提交」,将对全部测试用例判题。