#238. 数组不相邻元素和目标值判断

    ID: 238 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>codingbatRecursion-2gesp6线性DP递归

数组不相邻元素和目标值判断

组和约束

题目背景

聪聪正在玩一个数字游戏,他需要从一串数字中挑选一些,但又不能让相邻的数字同时被选中。

题目描述

给定一个整数数组 nums,判断是否可能选择数组中的一些整数,使得它们的和等于给定的目标值 target,并满足一个额外约束:如果数组中的一个值被选中,那么它在数组中紧随其后的值不能被选中。此问题通常通过递归解决,无需显式循环。

输入格式

输入以如下格式从标准输入中给出。

start nums target

其中 start 是一个整数,表示开始考虑的数组索引(通常为 00);nums 是一个整数数组;target 是一个整数,表示目标和。

输出格式

输出以如下格式输出到标准输出中。

result

result 是一个布尔值,如果存在满足条件的组,则为 true,否则为 false

样例

0 [2 5 10 4] 12
true
0 [2 5 10 4] 14
false
0 [2 5 10 4] 7
false

样例解释

样例 1: 对于输入 0 [2 5 10 4] 12,可以选择 210。它们的和为 2+10=122 + 10 = 122 被选中,其后的 5 未被选中;10 被选中,其后的 4 未被选中。满足约束,因此输出 true

样例 2: 对于输入 0 [2 5 10 4] 14,在满足约束的条件下,无法找到和为 1414 的组合,因此输出 false

样例 3: 对于输入 0 [2 5 10 4] 7,在满足约束的条件下,无法找到和为 77 的组合,因此输出 false

数据范围

每个测试用例的时间限制为 11 秒,内存限制为 10241024 MiB。