程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了删除零后面元素的算法 (0)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决删除零后面元素的算法 (0)?

开发过程中遇到删除零后面元素的算法 (0)的问题如何解决?下面主要结合日常开发的经验,给出你关于删除零后面元素的算法 (0)的解决方法建议,希望对你解决删除零后面元素的算法 (0)有所启发或帮助;

我需要编写一个算法来删除零后面的数字。@H_419_1@

我得到了 2 条相关信息,首先是序列中的数字数量。然后我得到了实际的序列。@H_419_1@

数据示例:@H_419_1@

1,3,5,4,7,6.

每次我有一个零时,我必须删除它前面的数字。@H_419_1@

在这种情况下,我有 2 个零,所以我必须删除 5 和 4。@H_419_1@

1,6.

现在,我有 2 个零,所以我必须删除 3 和 7。让我没有其他零。@H_419_1@

1,6

我真的不知道如何开始......请帮忙。@H_419_1@

解决方法

使用 for 循环并比较您的 i+1 值。如果 i+1 == 0,则删除 i 和 i+1

,

遍历一个数组。每次找到 0 时,将 0 和它前面的数字拼接起来,然后从最后一个成功的数字开始。

var inputArray = [1,2,3,4,5,6,7,8,9,0]
function removeZeroes(input){
  var count=0;
  for(var i=0; i<input.length;i++){
  console.log("i is "+input[i]);
    if(input[i]==0){
      if(i>=1){
        console.log("splicing "+input[i]+"and "+input[i-1]);
        input.splice(i-1,2);
        i=i-2;
      }
    }
  }
  return input;
}
var i =removeZeroes(inputArray);
console.log(i);

,

遍历数组,如果发现大于 0 的值,只需将其推送到答案数组,如果找到零,则从答案中弹出最后一个数字。

const data = [
  [1,6],[1,6]
]

const removeBeforeZero = (input) => {
  let output = []
  for(let i = 0; i < input.length; i++){
     if(input[i]){
        output.push(input[i])
     } else {
        output.pop()
     }
  }
  return output
}

data.forEach(test => {
  console.log(removeBeforeZero(test))
})

或修改输入

const data = [
  [1,6]
]

const removeBeforeZero = (input) => {
   const temp = []
   input.forEach(num => num ? temp.push(num) : temp.pop())
   input.splice(temp.length)
   input.splice(0,input.length,...temp)
   return input
}

data.forEach(test => {
  removeBeforeZero(test)
})

console.log(data)

,

Splice 是从数组中删除元素的好方法。当您发现 0 作为下一个元素时,将其和下一个元素一起删除,并确保将您的迭代计数器备份。

let arr = [1,6];
for (var i = 0; i < arr.length - 1; ++i) {
  if (arr[i + 1] === 0) {
    arr.splice(i,2);
    i = i - 2;
  }

  console.log(i,JSON.Stringify(arr));
}

大佬总结

以上是大佬教程为你收集整理的删除零后面元素的算法 (0)全部内容,希望文章能够帮你解决删除零后面元素的算法 (0)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。