Given a number represented as an array of digits, plus one to the number.
Analysis:
This problem is pretty easy.
Just consider two special cases:
(1) last digit is 9: need a carry
(2) All the digits are 9 just return 100000... number of 0s is the length of the vector.
Code:
class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (digits[digits.size()-1]!=9){
digits[digits.size()-1]++;
return digits;
}else{
digits[digits.size()-1]=0;
int carry=1;
for (int i=digits.size()-2;i>=0;i--){
if (digits[i]!=9){
digits[i]++;
return digits;
}else{
digits[i]=0;
}
}
vector<int> res(digits.size()+1,0);
res[0]=1;
return res;
}
}
};
why do you still need line 11?
ReplyDelete