码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode第66题 (array)

时间:2015-06-17 23:23:03      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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     }

 

leetcode第66题 (array)

标签:

原文地址:http://www.cnblogs.com/WonderHow/p/4584530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!