一、题目描述
跳房子,也叫跳飞机,是一种世界性的儿童游戏。
游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子都被选完,房子最多的人获胜。
跳房子的过程中,如果有踩线等违规行为会结束当前回合,甚至可能倒退几步。
假设房子的总格数是count,小红每回合可能连续跳的步数都放在数据steps中,请问数组中是否有一种步数的组合,可以让小红三个回合跳到最后一格?如果有,请输出索引和最小的步数组合,数据保证索引和最小的步数组合是唯一的。
注意:数组中的步数可以重复,但数组中的元素不能重复使用。
二、输入描述
第一行输入为房子总格数count,它是整数类型int。
第二行输入为每回合可能连续跳过的步数,它是整数数组类型。
三、输出描述
返回索引和最小满足要求的步数组合。
注意:顺序保持steps中的原有顺序。
补充说明
- count <= 10000;
- 3 <= steps.length <= 10000;
- -100000 <= steps[i] <= 100000;
四、测试用例
测试用例1
1、输入
12
2,3,7,8,10
本篇博客详细介绍了华为OD机试中的一道跳房子问题,通过Java实现回溯算法寻找满足条件的步数组合。文章包括题目描述、输入输出说明、解题思路及Java源码展示,最终得出最优解并展示运行效果。
订阅专栏 解锁全文
4362





