題目
Jumping on the Clouds
舉例輸入
7
0 0 1 0 0 1 0
舉例輸出
4
舉例輸入
6
0 0 0 0 1 0
舉例輸出
3
解析
看官方的圖片解析也是相當清楚
題旨大概就是:遍歷一個陣列
一次最多可以往前兩個元素
但指針所停止的元素不可為1
請問這個陣列指針需要移動幾次才可完成?
從題目可知道我們並不知道有幾朵雲
但可以知道下個資料為何
因此我們就偵測,如果兩個後的元素不是1就指針跳2
如果是1就指針跳1
再檢查跳過去之後有沒有跳完,如果到終點就不跳
function jumpingOnClouds(c) {
//HackerRank有時候傳字串有時候陣列
c = Array.isArray(c) ? c : c.split(' ');
//還沒踏出
let stepCount = 0;
// 站在第0個位置
let path = 0;
//直接跨出第一步
while (path < c.length) {
if (c[path + 2] == 0) {
path += 2;
} else {
path += 1;
}
if (c[path] !== undefined) {
stepCount += 1;
}
}
return stepCount
}