Javascript 运动:鱼

Javascript 运动:鱼,javascript,algorithm,Javascript,Algorithm,任务:N贪婪的鱼沿着河流移动。计算一下有多少条鱼活着我使用javascript,我的代码如下: // you can write to stdout for debugging purposes, e.g. // console.log('this is a debug message'); //fish function solution(fishSize, fishDirection) { var arr = []; // arr.push({size: fishSize[

任务:N贪婪的鱼沿着河流移动。计算一下有多少条鱼活着
我使用javascript,我的代码如下:

// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');

//fish
function solution(fishSize, fishDirection)
{
    var arr = [];
    // arr.push({size: fishSize[0], direction: fishDirection[0]});
    // for(let i = 1; i < fishSize.length; i++)
    // {
    //     pushNewFish(arr, fishSize[i], fishDirection[i]);
    // }
    for (let i = fishSize.length - 1; i >= 0; i--)
    {
        pushNewFish(arr, fishSize[i], fishDirection[i]);
    }

    return arr.length;
}

function pushNewFish(arr, fishSize, fishDirection)
{
    // if(arr.length > 0 && fishDirection != arr[arr.length - 1].fishDirection && fishSize != arr[arr.length - 1].fishSize)
    if(arr.length > 0 && arr[arr.length - 1].fishDirection === 0 && fishDirection === 1 && fishSize != arr[arr.length - 1].fishSize)
    {
        // while(arr.length > 0 && arr[arr.length - 1].fishDirection != fishDirection)
        while(arr.length > 0 && arr[arr.length - 1].fishDirection === 0 && fishDirection === 1)
        {
            if (arr[arr.length - 1].fishSize < fishSize)
            {
                arr.pop();
            }
            else 
            {
                if(arr[arr.length - 1].fishSize === fishSize)
                {
                    arr.push({fishSize, fishDirection});
                }
                break;
            }
        }
        if (arr.length == 0) arr.push({fishSize, fishDirection});
    }
    else 
    {
        arr.push({fishSize: fishSize, fishDirection: fishDirection});
    }
}
//您可以写入stdout进行调试,例如。
//log('这是一条调试消息');
//鱼
函数解决方案(fishSize、fishDirection)
{
var-arr=[];
//arr.push({size:fishSize[0],方向:fishDirection[0]});
//for(设i=1;i=0;i--)
{
pushNewFish(arr,鱼的大小[i],鱼的方向[i]);
}
返回arr.length;
}
函数pushNewFish(arr、fishSize、fishDirection)
{
//如果(arr.length>0&&fishDirection!=arr[arr.length-1]。fishDirection&&fishSize!=arr[arr.length-1]。fishSize)
如果(arr.length>0&&arr[arr.length-1]。fishDirection==0&&fishDirection==1&&fishSize!=arr[arr.length-1]。fishSize)
{
//while(arr.length>0&&arr[arr.length-1].fishDirection!=fishDirection)
而(arr.length>0&&arr[arr.length-1]。fishDirection==0&&fishDirection==1)
{
if(arr[arr.length-1].fishSize
我的代码只获得50%的任务分数。我无法理解为什么不是所有的测试都通过了我的代码。请帮我找到错误,谢谢

函数解决方案(A、B){
function solution(A, B) {
// write your code in JavaScript (Node.js 8.9.4)
let stack=[];
 let c=B.length;
 for(let j=0;j<B.length;j++){
   if(B[j]===1){
     stack.push(A[j]);
   }
   else if(B[j]===0){
    while(stack.length>0){
        if(stack[stack.length-1]>A[j]){
           c=c-1;
          break;
        }else if(stack[stack.length-1]<A[j]){
           c=c-1;
          stack.pop();
        }
    }
   }
 }
 return c;
}
//用JavaScript编写代码(Node.js 8.9.4) 让堆栈=[]; 设c=B.长度; for(设j=0;j0){ if(堆栈[stack.length-1]>A[j]){ c=c-1; 打破
}否则如果(stack[stack.length-1]你在家庭作业上寻求帮助吗?@AdrianBrand这不是我的家庭作业。这只是日常练习。我的代码在Javascript中得到100%的分数,复杂性为O(N)也许你还应该在问题中提到原始代码中的错误,这将帮助他们理解是什么让代码运行得更快、更准确。