我想要创建一个函数来返回一个数组,其中包含完成另一个数组所需的步骤数,但有一个小条件,我只想在 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)
刚刚为您的解决方案添加了 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)
| 归档时间: |
|
| 查看次数: |
11410 次 |
| 最近记录: |