Plus One问题及解法

本文介绍了一种针对数组形式表示的非负整数进行加1操作的有效算法。通过倒序遍历数组并逐位相加的方式实现,适用于不包含前导零的整数表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.

You may assume the integer do not contain any leading zero, except the number 0 itself.

The digits are stored such that the most significant digit is at the head of the list.

问题分析:

本题目想将一个存在数组中的非负整数加1求和,得到新的整数,我们可以采取倒序遍历,依次求和的方法求解。


下面是我的详细代码:

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int flag = 1;
        vector<int> res;
        for(int i = digits.size() - 1; i >= 0; i--)
        {
        	int sum = flag +  digits[i];
        	res.insert(res.begin(),sum % 10);
        	flag = sum / 10;
		}
		if(flag) res.insert(res.begin(),flag);
		return res;
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值