Leetcode—166. 加一【简单】new(big.Int)法

2025每日刷题(234)

Leetcode---66. 加一

new(big.Int)法实现代码

go 复制代码
import "math/big"
func plusOne(digits []int) []int {
    num := new(big.Int)
    lens := len(digits)
    for i:= 0; i < lens; i++ {
        num.Mul(num, big.NewInt(10))
        num.Add(num, big.NewInt(int64(digits[i])))
    }
    num.Add(num, big.NewInt(1))
    flag := false
    if(digits[lens - 1] == 9) {
        flag = true
    }
    var ans []int
    if(flag) {
        ans = make([]int, lens + 1)
        for i := lens; i >= 0; i-- {
            mod := new(big.Int)
            mod.Mod(num, big.NewInt(10))
            ans[i] = int(mod.Int64())
            
            if num.Cmp(big.NewInt(0)) == 0 {
                flag = false
                break
            }
            num.Div(num, big.NewInt(10))
        }
        if(!flag) {
            ans = ans[1:]
        }
    } else {
        ans = make([]int, lens)
        copy(ans, digits)
        ans[lens - 1] += 1
    }
    return ans
}

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
灵感__idea4 小时前
Hello 算法:贪心的世界
前端·javascript·算法
ZK_H5 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
澈2075 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
ambition202425 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_5 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
qiqsevenqiqiqiqi5 小时前
前缀和差分
算法·图论
代码旅人ing5 小时前
链表算法刷题指南
数据结构·算法·链表
Yungoal5 小时前
常见 时间复杂度计算
c++·算法
6Hzlia6 小时前
【Hot 100 刷题计划】 LeetCode 48. 旋转图像 | C++ 矩阵变换题解
c++·leetcode·矩阵
不爱吃炸鸡柳7 小时前
单链表专题(完整代码版)
数据结构·算法·链表