给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一

  • Post author:
  • Post category:其他


给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int length = digits.size();
        for (int i = length - 1; i >= 0; i--)
        {
            digits[i]++;   /*拿出数组的最后一位加一*/
            if (digits[i] == 10)/*假如最后一个元素加一之后是10,就给这一个元素置为0,等这遍循环结束之后,就会给他的前一位进一*/
            {
                digits[i] = 0;
            }
            else /*如果拿到的元素加一之后不是10   就可以将数组返回*/
            {
                return digits;
            }
        }
        digits.insert(digits.begin(), 1);/*假如数组的每一个元素都是9 才会走到这一步,给首位前边添加一个1*/
        return digits;
    }
};

int main()
{
    Solution s;
    vector<int> arr = { 1,2,3,9,9 };
    vector<int>p = s.plusOne(arr);
    for (int i = 0; i < p.size(); i++)
    {
        printf("%d ", p[i]);
    }
    printf("\n");
    return 0;
}



版权声明:本文为Zhang_Ting0020原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。