云端跳跃 HackerRank

moh*_*geh 2 javascript

在此输入图像描述我想要创建一个函数来返回一个数组,其中包含完成另一个数组所需的步骤数,但有一个小条件,我只想在 0 上执行步骤,这意味着如果我有数组 c = [0,0 ,0,1,0,0,1,0] 它将把前三个 0 作为一个步骤,但是如果我只有一个 0,正如你在数组末尾看到的那样,这将是一个步骤,所以对于这个数组它将采取 4 个步骤来完成它 (0,0,0)(0)(0)(0) 正如你所看到的,它会忽略 (1)

如果您想要更好的描述,这是测试的链接 HakerRank tets 链接

var array = [0, 0, 0, 1, 0, 0, 1, 0]
var stepsArray = [];

function jumpingOnClouds(c) {
  for (var i = 0; i < c.length; i++) {
    if (c[i] === 0) {
      if (c[i] === c[i + 1])
        stepsArray.push(c[i + 1])
    } else {
      stepsArray.push(c[i])
    }
  }

  return stepsArray.length

}
var result = jumpingOnClouds(array);
console.log(result);
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个,但它一直给我同样的错误

   var array = [0, 0, 0, 1, 0, 0]
   var stepsArray = [];
   function jumpingOnClouds(c) {
    for(var i = 0; i < c.length - 1; i++){
        if (c[i] === 0) {
            console.log(c[i])
            if (c[i] === c[i + 1] && c[i + 1] === c[i + 2]) {
                stepsArray.push(c[i + 2])
            } else if (c[i] === c[i + 1]) {
                stepsArray.push(c[i + 1])
            } else {
                stepsArray.push(c[i])
            }
        }
    }
    return stepsArray.length

}
var result = jumpingOnClouds(array);
console.log(result)
Run Code Online (Sandbox Code Playgroud)

Dee*_*ire 6

刚刚为您的解决方案添加了 2 个索引约束I并删除了不需要的条件:

我在 Hackerrank 上测试了我的解决方案:

看一下这个:

'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
    inputString += inputStdin;
});

process.stdin.on('end', _ => {
    inputString = inputString.replace(/\s*$/, '')
        .split('\n')
        .map(str => str.replace(/\s*$/, ''));

    main();
});

function readLine() {
    return inputString[currentLine++];
}

// Complete the jumpingOnClouds function below.
function jumpingOnClouds(c) {

    var stepsArray = [];
   
    let i=0;
    while(i < c.length - 1){
       
        if ((i+2<c.length) && (c[i+2] === 0)) {
            stepsArray.push(c[i + 2]);
            i+=2;
        } else{
            stepsArray.push(c[i + 1]);
            i+=1;
        } 
        
    }
    return stepsArray.length

}

function main() {
    const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

    const n = parseInt(readLine(), 10);

    const c = readLine().split(' ').map(cTemp => parseInt(cTemp, 10));

    let result = jumpingOnClouds(c);

    ws.write(result + "\n");

    ws.end();
}
Run Code Online (Sandbox Code Playgroud)