标签:
题目:
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.
即用数组代表一个数,给这个数加1后,继续用数组表示。
比较简单,注意进位就可以了,尤其是要注意最高项的进位,容易忽视。
1 vector<int> plusOne(vector<int>& digits) { 2 vector<int> reversedigits; 3 bool Isopsephy = true;//表示是否进位 4 for(int i=digits.size()-1;i>=0;i--) 5 { 6 if(Isopsephy) 7 { 8 int digit = digits[i]+1; 9 if(digit>9) 10 { 11 Isopsephy =true; 12 reversedigits.push_back(digit-10); 13 if(i==0)//注意最高位 14 reversedigits.push_back(1); 15 } 16 else 17 { 18 Isopsephy =false; 19 reversedigits.push_back(digit); 20 } 21 } 22 else 23 reversedigits.push_back(digits[i]); 24 } 25 std::reverse(reversedigits.begin(),reversedigits.end()); 26 return reversedigits; 27 }
标签:
原文地址:http://www.cnblogs.com/WonderHow/p/4584530.html