我的js算法爬坑之旅-移掉K位数字

103 阅读1分钟

第三十九天:力扣第402题,移掉K位数字

地址:leetcode-cn.com/problems/re…

思路:转成数组,当前面有一项比后面大,就删除前面一项,最后再去掉前面的0即可

var removeKdigits = function(num, k) {
  num = num.split("");
  for(let i = 0; i < num.length - 1; i++)
  {
    if(num[i] > num[i+1])
    {
      num.splice(i, 1);
      if(i === 0)
      {
        i--;
      }
      else{
        i=i-2;
      }
      k--;
    }
    if(k === 0)
    {
      break;
    }
  }
  if(num.length <= k)
  {
    return "0";
  }
  if(k!=0)
  {
    num.splice(num.length-k,k);
  }
  if(num.join("").replace(/\b(0+)/gi,"") === "")
  {return "0";}
  return num.join("").replace(/\b(0+)/gi,"");
};
执行用时:88 ms, 在所有 JavaScript 提交中击败了89.72%的用户
内存消耗:39.5 MB, 在所有 JavaScript 提交中击败了56.59%的用户