Codibility中标志的80%Javascript解决方案

Codibility中标志的80%Javascript解决方案,javascript,Javascript,Flags,Codibility中著名的代码挑战 我已经试过好几次了,我很确定这个bug在函数“CheckFlags”中 我还尝试了Codibility提供的官方解决方案,最终获得了100%的成功。 然而,我无法理解为什么我的检查算法失败,并且只有三个失败的测试数据(检查测试报告) 函数解决方案(A){ 设peakIndex=[]; 设peakCount=0; for(设i=1;i=left){//二进制搜索 让flags=数学楼层((左+右)/2) 如果(!检查标志(peakInde

Flags,Codibility中著名的代码挑战

我已经试过好几次了,我很确定这个bug在函数“CheckFlags”中 我还尝试了Codibility提供的官方解决方案,最终获得了100%的成功。 然而,我无法理解为什么我的检查算法失败,并且只有三个失败的测试数据(检查测试报告)

函数解决方案(A){
设peakIndex=[];
设peakCount=0;
for(设i=1;iA[i+1]){
peakkindex[peakCount]=i;
peakCount++;
}
}
如果(峰值计数===0 | |峰值计数===1)
返回峰值计数;
设左=2;
让右=峰值计数;
让结果;
while(right>=left){//二进制搜索
让flags=数学楼层((左+右)/2)
如果(!检查标志(peakIndex,标志)){
右=标志-1;
}否则{
结果=标志;
左=标志+1;
}
}
返回结果;
}
函数检查标志(peakIndex,标志){
设flagCount=1;
让flagIndex=新数组(标志);
flagIndex[0]=0;//始终包含第一个标志
对于(让peakIter=1;peakIter
问题就在眼前

flagIndex[0] = 0;
这行代码设置了第一个标志索引的位置,但错误地指定了第一个位置,而不是第一个峰值的位置。应该是

flagIndex[0] = peakIndex[0];

问题就在眼前

flagIndex[0] = 0;
这行代码设置了第一个标志索引的位置,但错误地指定了第一个位置,而不是第一个峰值的位置。应该是

flagIndex[0] = peakIndex[0];

谢谢你的回答。你能解释为什么你的答案能解决问题吗?好的,我编辑了答案,使它更具信息性。谢谢你的回答。你能解释为什么你的答案能解决问题吗?好的,我编辑了答案,使它更具信息性。