标签:
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; } };
标签:
原文地址:http://blog.csdn.net/geekmanong/article/details/50335645