Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hackerrank上新年混乱的问题理解解决方案(Javascript)_Javascript - Fatal编程技术网

Hackerrank上新年混乱的问题理解解决方案(Javascript)

Hackerrank上新年混乱的问题理解解决方案(Javascript),javascript,Javascript,问题是可以找到的 我为此奋斗了相当长的一段时间——我总是忽略了用Javascript或一般语言学习与CS相关的材料。但我将在一些不同的公司进行面试,一些公司已经通知技术面试将与数据结构/算法相关,因此我目前正在网上学习一些课程,并完成Hackerrank的挑战 不管怎样,几小时后我终于屈服了,并找到了一些解决办法。 其中之一是: let queue1=[2,1,5,3,4]; 设queue2=[2,5,1,3,4]; 函数极小值b(q){ 让贿赂=0; 设currentIndex=q.lengt

问题是可以找到的

我为此奋斗了相当长的一段时间——我总是忽略了用Javascript或一般语言学习与CS相关的材料。但我将在一些不同的公司进行面试,一些公司已经通知技术面试将与数据结构/算法相关,因此我目前正在网上学习一些课程,并完成Hackerrank的挑战

不管怎样,几小时后我终于屈服了,并找到了一些解决办法。 其中之一是:

let queue1=[2,1,5,3,4];
设queue2=[2,5,1,3,4];
函数极小值b(q){
让贿赂=0;
设currentIndex=q.length-1;
让位置不同;
而(当前索引>=0){
常数currentValue=q[currentIndex];
const valuePosition=currentIndex+1;
positionDiff=currentValue-valuePosition;
如果(位置差异>=3){
返回“太混乱”;
}
常量贿赂位置=当前值-2;
for(让comparePosition=Math.max(0,briberPosition);comparePosition当前值){
贿赂++;
}
}
当前索引--;
}
返还贿赂;
}
最小umbribes(队列1)
我知道我们需要检查一个数字是否向前移动了超过2个空格,检查它的值和位置就可以做到这一点。 然而,要

const briberPosition=currentValue-2;
for(让comparePosition=Math.max(0,briberPosition);comparePosition
这让我很困惑。我在调试器中用不同的值慢慢地处理了这个问题,我无法理解为什么我们将currentValue-2设置为briberPosition,然后检查它与索引的关系


有人可以分享一些信息吗?

挑战的最后一个问题是“需要多少贿赂才能让队列进入这种状态”

所以他选择从每个数字的末尾开始,首先检查它是否比原来的位置提前了3个或更多的位置——这部分你已经得到了

现在,如果不是3个或更多的位置-你想知道有多少个位置,只需返回2个位置,检查2个位置和1个位置的数字是否大于当前位置的值。如果他们是-这意味着他们贿赂了他去那里,所以我们增加“贿赂”变量,继续下一个整数并重复这个过程。因为他从数组的末尾开始,所以他会减少位置,以到达当前值的“行贿者”可以到达的最远位置

如果有帮助的话,当
positionDiff
为0时,可以完全跳过整个
for
循环,如果他在
过于混乱的
检查之后进行检查,则可以提高效率

注意,在“for”循环中,他将其修剪为
Math.max(0,briberPosition)
,以避免超出数组限制