我的js算法爬坑之旅-单调递增的数字

123 阅读1分钟

第六十九天:力扣738题,单调递增的数字

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

思路:从后往前遍历,后一位比前一位小的,就全部变成9;

function monotoneIncreasingDigits(N: number): number {
  const arr:Array<string> = N.toString().split('');
  let res:Array<number> = new Array<number>();
  res.unshift(parseInt(arr[arr.length - 1]));
  for(let i:number = arr.length - 1; i > 0; i--)
  {
    if(res[0] < parseInt(arr[i - 1]))
    {
      res.fill(9);
      res.unshift(parseInt(arr[i - 1]) - 1);
    }
    else{
      res.unshift(parseInt(arr[i - 1]));
    }
  }
  return parseInt(res.join(''));
};

执行用时:88 ms, 在所有 TypeScript 提交中击败了100.00%的用户

内存消耗:39.8 MB, 在所有 TypeScript 提交中击败了100.00%的用户