#OD180. 跳房子II

跳房子II

题目解析和算法源码

华为OD机试 - 跳房子II(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客

题目描述

跳房子,也叫跳飞机,是一种世界性的儿童游戏。

游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子被选完,房子最多的人获胜。

跳房子的过程中,如果有踩线等违规行为,会结束当前回合,甚至可能倒退几步。

假设房子的总格数是count,小红每回合可能连续跳的步数都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红三个回合跳到最后一格?

如果有,请输出索引和最小的步数组合(数据保证索引和最小的步数组合是唯一的)。

注意:数组中的步数可以重复,但数组中的元素不能重复使用。

输入描述

第一行输入为房子总格数count,它是int整数类型。 第二行输入为每回合可能连续跳的步数,它是int整数数组类型

输出描述

返回索引和最小的满足要求的步数组合(顺序保持steps中原有顺序)

备注

  • count ≤ 10000
  • 3 ≤ steps.length ≤ 10000
  • -100000 ≤ steps[i] ≤ 100000

用例1

输入

[1,4,5,2,0,2]
9

输出

[4,5,0]

用例2

输入

[1,5,2,0,2,4]
9

输出

[5,2,2]

用例3

输入

[-1,2,4,9]
12

输出

[-1,4,9]