CodeSignal避障跳跃题:代码通过公开用例但隐藏测试失败求排查
问题排查:寻找避开障碍物的最小跳跃长度
题目说明
给定表示直线上障碍物坐标的整数数组,从坐标0向右跳跃,每次只能跳固定整数长度,找出能避开所有障碍物的最小跳跃长度。
- 示例:输入
inputArray = [5, 3, 6, 7, 9],输出应为4。
我的Java代码
int solution(int[] a) { Arrays.sort(a); int ans = 0; for (int jump = 2; jump <= 1000; jump++) { int now = 0; boolean flag = true; while(now<=a[a.length-1]){ int next = now + jump; if(Arrays.binarySearch(a, next)<0){ now = next; } else{ flag = false; break; } } if(flag) { ans = jump; break; } } return ans; }
解题思路
- 对数组排序,获取最大障碍物坐标;
- 从跳跃长度
jump=2开始递增尝试,直到找到能避开所有障碍物的最小长度。
遇到的问题
通过了所有给定测试用例,但提交时在某个隐藏测试中失败,找不到反例和代码错误,请求帮助排查。
内容的提问来源于stack exchange,提问作者roger
相关产品推荐
相关产品推荐

