为了更好的阅读体检,可以查看我的算法学习网跳房子I
题目描述
跳房子,也叫跳飞机,是一种世界性的儿童游戏。
游戏参与者需要分多个回合按顺序跳到第 1 1 1格直到房子的最后一格
跳房子的过程中,可以向前跳,也可以向后跳。
假设房子的总格数是 c o u n t count count,小红每回合可能连续跳的步教都放在数组 s t e p s steps steps中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到量后一格?
如果有,请输出索引和最小的步数组合。
注意:
- 数组中的步数可以重复,但数组中的元素不能重复使用。
- 提供的数据保证存在满足题目要求的组合,且索引和最小的步数组合是唯一的。
输入描述
第一行输入为房子总格数 c o u n t count count,它是 i n t int int整数类型。
第二行输入为每回合可能连续跳的步数,它是 i n t int int整数数组类型。
输出描述
返回索引和最小的满足要求的步数组合(顺序保持 s t e p s steps steps中原有顺序)
备注
- c o u n t ≤ 1000 count \leq 1000 count≤1000
- 0 ≤ s t e p s . l e n g t h ≤ 5000 0 \leq steps.length \leq 5000 0≤steps.length≤5000
- − 100000000 ≤ s t e p s ≤ 100000000 -100000000 \leq steps \leq 100000000 −100000000≤steps≤100000000
样例
输入
[1,4,5,2,]
7
输出
[5,2]
说明
无
输入
[-1,2,4,9,6]
8
输出
[-1,9]
说明
此样例有多种组合满足两回合跳到最后,譬如: [ − 1 , 9 ] [-1,9] [−1,9], [ 2 , 6 ] [2,6] [2,6],其中 [ − 1 , 9 ] [-1,9] [−1,9]的索引和为 0 + 3 = 3 0+3=3 0+3=3, [ 2 , 6 ] [2,6] [2,6]的索和为 1 + 4 = 5 1+4=5 1+4=5,所以索引和最小的步数组合 [ − 1 , 9 ] [-1,9] [−1,9]