当前位置: 首页 > news >正文

加一(js实现,LeetCode:66)

这道题看起来就是一个整数+1,然后将整数拆为数组,但是在实现的思路上这更像是一个计算器,+1有三种情况

1、末位+1之后不需要向高位进1

2、末位+1之后需要向高位进1但是整数的量级不变(长度)

3、末位+1之后需要向高位进1但是整数量级变化(长度+1)

这里先上代码

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function (digits) {
    let len = digits.length
    if (digits[len - 1] + 1 < 10) {
        digits[len - 1] += 1
    } else {
        const add = () => {
            digits[len - 1] += 1
            if (digits[len - 1] == 10) {
                digits[len - 1] = 0
                len -= 1
                add()
            }
        }
        add()
        if (digits[0] == 0) {
            digits[0] += 1
            digits.push(0)
        }
        // digits.push(0)

    }
    return digits
};

第一种和第二种情况很好理解:通过本位+1之后与10比较来决定是否需要进位,第三种情况:满10之后将本位置0,所以按照add()递归后的结果首位为0,根据这一特性我们可以判断末位+1之后整数的量级发生了变化,我们将头位加1并且push一位进末位即可

相关文章:

  • rtsp在网页上显示(webrtc-stream)
  • 【C++ STL】 容器详解:priority_queue 学习
  • 大语言模型学习--向量数据库Milvus实践
  • 【大模型学习】第十六章 模型微调技术综述
  • 【eNSP实战】MSTP与VRRP配合使用
  • 图论part2|200. 岛屿数量、695. 岛屿的最大面积
  • 如何制作Windows系统盘、启动盘?(MediaCreationTool_22H2)
  • 韦伯望远镜的拉格朗日点计算推导过程,包含MATLAB和python运动轨迹仿真代码
  • Redis 数据持久化之AOF
  • 3-2 深入解析数字电路设计中的竞争条件及解决策略
  • blazemeter工具使用--用于自动生成jmeter脚本并进行性能测试
  • 【动手学深度学习】基于SoftMax回归算法实现图片分类
  • docker-compose部署MongoDB分片集群
  • 如何绕过 reCAPTCHA V2/V3:Python、Selenium 与其他工具的实战指南
  • Unity 封装一个依赖于MonoBehaviour的计时器(上) 基本功能
  • 30天学习Java第三天——控制循环
  • 电机控制常见面试问题(九)
  • 深度学习 常见优化器
  • ROS实践(四)机器人SLAM建图(gmapping)
  • linux纯干货
  • “五一”假期首日跨区域人员流动预计超3.4亿人次
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 民生银行一季度净利127.42亿降逾5%,营收增7.41%
  • 白云山一季度营收净利双降,此前称今年将挖掘盘活自身资源
  • 安徽省公安厅原副厅长刘海石主动投案,正接受审查调查
  • 总书记考察的上海“模速空间”,是一个怎样的空间?