带记忆化的二叉树递归分析
Swift
Hard
functions
任务 «带记忆化的二叉树递归分析»
编写一个函数,该函数接收一个以整数数组形式表示的二叉树(按层序遍历,null 表示为 0),并返回从根节点到叶子节点的节点值之和的最大值,前提是在路径中可以跳过不超过两个连续的节点。使用带记忆化的递归函数进行高效计算。树最多包含 1000 个节点,节点值范围为 -100 到 100。
输入格式
第一行:一个整数 n (1 ≤ n ≤ 1000) — 数组中元素的数量。第二行:n 个以空格分隔的整数 — 树的层序遍历表示(0 表示节点不存在)。
输出格式
一个整数 — 在可以跳过不超过两个连续节点的条件下,从根节点到叶子节点的最大和。
示例
示例 1
输入
3
ab
bc
ca
输出
6
示例 2
输入
1
10
输出
10
示例 3
输入
5
10 5 15 0 0
输出
25
示例 4
输入
2
abc
def
输出
0
main.swift