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

leetcode ||66、 Plus One

时间:2015-04-03 11:26:38      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:leetcode   math   算法   

problem:

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.

Hide Tags
 Array Math
题意,用数组的形式保存一个非负整数,每一位0~9,将该数+1,返回其数组形式,要求最高位数在数组首位

thinking:

(1)首先要读懂题意,这题不难。

(2)注意细节:

1、

while(a>0 && --i>=0)
       {
            int tmp=digits[i];
           digits[i]=(digits[i]+a)%10;
           a=(tmp+a)/10;
       }
临时变量的应用

2、最后一位要不要进位,要考虑的到

code:

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        int a=0;
        if(digits.size()==0)
            {
                digits.push_back(1);
                return digits;
            }
        int i=digits.size()-1;
         a=( digits[i]+1)/10;
        digits[i]=( digits[i]+1)%10;
       while(a>0 && --i>=0)
       {
            int tmp=digits[i];
           digits[i]=(digits[i]+a)%10;
           a=(tmp+a)/10;
       }
       if(a>0)
            digits.insert(digits.begin(),a);

        return digits;
    }
};


leetcode ||66、 Plus One

标签:leetcode   math   算法   

原文地址:http://blog.csdn.net/hustyangju/article/details/44851263

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