题目大概如下
输入一组数字,代表要一些零碎的石头,可以通过踩着这些零碎的石头过河,要求前一步距离d,则下一步距离只能是d或者d+1,d-1,返回是否能够过河
初始条件
- 零碎石头N,则2<N<1000
- 第一步为0
- 其实的距离d为1
举个例子
比如有测例
输入: 0 1 3 4 6 9 10 13
输出: true
路径: 0 1 3 6 9 13
代码
function runToRiver(arr) {
if (arr.length < 2 || arr[0] != 0 || arr[1] != 1) {
return false
}
var i = 2;
var step = 1;
return process2(arr, step, i)
}
function process2(arr, step, index) {
var i = index
while (index < arr.length && arr[index] - arr[i - 1] <= step + 1 ) {
if (arr[index] - arr[i - 1] >= step - 1) {
var distance = arr[index] - arr[i - 1]
console.log(distance, arr[index])
if (process2(arr, distance, index + 1)) {
return true
}
}
index++
}
if (index === arr.length) {
return true
}
return false
}