我们有一系列高度,代表沿着步道的高度。给定数组中的开始/结束索引,返回从开始索引开始到结束索引结束的步行的“大”步数。我们会说,如果它上升或下降5或更多,那么步骤很大。 start和end索引都是start< = end的数组的有效索引。
bigHeights({5, 3, 6, 7, 2}, 2, 4) → 1
bigHeights({5, 3, 6, 7, 2}, 0, 1) → 0
bigHeights({5, 3, 6, 7, 2}, 0, 4) → 1
我遇到了这个问题,无法继续前进
功能签名如下:
public int bigHeights(int[] heights, int start, int end){ }
答案 0 :(得分:1)
您需要的策略非常简单:您只需要检查每对相邻的数字并计算“大”步数。
所以你需要做的是:
希望这能给你足够的提示来解决问题....
答案 1 :(得分:0)
您只需要浏览heights
数组,计算差异的绝对值,并计算:
public int bigHeights(int[] heights, int start, int end){
int bigsteps = 0;
for (int i = start + 1; i <= end; i++) {
if (Math.abs(heights[i] - heights[i - 1]) >= 5)
bigsteps++;
}
return bigsteps;
}