LeetCode 66:Plus One

来源:互联网 发布:鬼畜制作软件 编辑:程序博客网 时间:2024/06/06 00:41

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

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

//题意:一个整数按位存储于一个int数组中,排列顺序为:最高位在digits[0] ,最低位在digits[n-1],//例如:98,存储为:digits[0]=9; digits[1]=8;//解题思路:从数组的最后一位开始加1,需要考虑进位,如果到digits[0]位之后仍然有进位存在,则将进位加上class Solution {public:    vector<int> plusOne(vector<int> &digits) {        // IMPORTANT: Please reset any member data you declared, as        // the same Solution instance will be reused for each test case.        int a = 1;        vector<int> ans;        vector<int>::iterator it;        for(int i = digits.size() - 1;i >= 0;i--)        {            it = ans.begin();            int tmp = (a + digits[i]) % 10;            a = (a + digits[i]) / 10;            ans.insert(it, tmp);        }        if(a != 0)        {            it = ans.begin();            ans.insert(it, a);        }                return ans;    }};


1 0
原创粉丝点击