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

LeetCode:Plus One

时间:2014-11-19 11:04:49      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:algorithm   leetcode   

题目描述:

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.


思路:先将list翻转,再在list尾部加一个0。如果第一个数非9,则直接将其加1;否则遍历list,将遇到的第一个非9的数加1,其前面的数都置零。如果list的最后一个数为0,则将其删除。最后将list再翻转一次即得到结果。


代码:

vector<int> Solution::plusOne(vector<int> &digits)
{
    reverse(digits.begin(),digits.end());
    digits.push_back(0);
    int length = digits.size();
    bool flag = false;
    for(int i = 0;i < length;i++)
    {
        if(digits[i] == 9)
        {
            flag = true;
            continue;
        }
        else
        {
            if(flag)
            {
                for(int j = 0;j < i;j++)
                    digits[j] = 0;
                digits[i]++;
                break;
            }
            else
            {
                digits[i]++;
                break;
            }

        }
    }
    if(digits[length-1] == 0)
        digits.pop_back();
    reverse(digits.begin(),digits.end());
    return digits;
}


LeetCode:Plus One

标签:algorithm   leetcode   

原文地址:http://blog.csdn.net/yao_wust/article/details/41276915

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