当前位置: 首页 > 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纯干货
  • 复星医药换帅:陈玉卿接棒吴以芳任董事长,吴以芳改任复星国际执行总裁
  • 上海科创的三种品格
  • 成都世运会倒计时100天,中国代表团运动员规模将创新高
  • 直播电商行业代表呼吁:携手并肩伸出援手助力外贸企业攻坚克难
  • 泽连斯基承认乌情报部门刺杀俄军高官
  • 广东一公司违规开展学科培训被罚没470万,已注销营业执照