Javascript 运动:鱼
任务:N贪婪的鱼沿着河流移动。计算一下有多少条鱼活着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[
我使用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)也许你还应该在问题中提到原始代码中的错误,这将帮助他们理解是什么让代码运行得更快、更准确。