题解 | #递增的产奶量# 模拟大整数加法

递增的产奶量

https://www.nowcoder.com/practice/455120f1195a4fa992c88b97bfa9f8f6

知识点

大整数加法

思路

本质是给你一个用数组存的大整数,求+1是多少。我们可以模拟小学数学的加法的过程,从末尾开始+1,逐渐进位到最前面一位。

实现上由于数组在前面添加一位需要复制数组,所以我们翻转数组来实现,首先添加一个0用于进位。最后消除掉后置的零后翻转回来即可。

时间复杂度 O(n) n为大数的位数。

AC Code(C++)

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param milk int整型vector 
     * @return int整型vector
     */
    vector<int> tomorrowMilk(vector<int>& milk) {
        reverse(milk.begin(), milk.end());
        milk[0] += 1;
        int c = 0;
        milk.push_back(0);
        for (auto& x : milk) {
            int t = x + c;
            x = t % 10, c = t / 10;
        }
        while (milk.size() and milk.back() == 0) milk.pop_back();
        reverse(milk.begin(), milk.end());
        return milk;
    }
};

全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务