在 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