66 Plus One(大数+1Easy)

题目意思:vector<int> v存数   eg.123  则v[0]=1,v[1]=2,v[2]=3,加1后返回一个vector

思路:先判断新的vector长度是否需要加1,然后从vector最后一位开始往前进位

 1 class Solution {
 2 public:
 3     vector<int> plusOne(vector<int>& digits) {
 4         vector<int> ans(digits.size());
 5         bool flag=true;
 6         int add=1;
 7         for(int i=digits.size()-1;i>=0;--i){
 8             if(digits[i]!=9){
 9                 flag=false;
10                 break;
11             }
12         }
13         if(flag){
14             ans[0]=1;
15             ans.push_back(0);
16         }
17         else{
18             for(int j=digits.size()-1;j>=0;--j){
19                 ans[j]=(digits[j]+add)%10;
20                 add=(digits[j]+add)/10;
21             }
22         }
23         return ans;
24     }
25 };

ps:这段时间要看的东西实在太多,机器学习,推荐算法,还有这个算法,实在是有点头疼。希望坚持下去是有效果的。

posted @ 2015-06-23 10:01  影翕  阅读(221)  评论(0编辑  收藏  举报