leetcode:Plus One (加一)【面試演算法題】__演算法

來源:互聯網
上載者:User

題目:Given a number represented as an array of digits, plus one to the number.

題意動態數組存了一些個位元字,組成一個大數,計算這個大數加一之後的值。


類比大數的加法,當沒有進位的時候就可以彈出迴圈。

特殊考慮各個位元就是9的情況,加一後會多出一位,即結果是1加上len個0,len是digits的長度。

class Solution {public:    vector<int> plusOne(vector<int> &digits) {        int i,p,temp,len=digits.size();        for(i=0;i<len;++i)        {            if(digits[i]!=9)break;        }        if(i==len)        {            vector<int>result;            result.push_back(1);            for(i=0;i<len;++i)result.push_back(0);            return result;        }        digits[len-1]+=1;        p=0;        for(i=len-1;i>=0;--i)        {            temp=digits[i]+p;            digits[i]=temp%10;            p=temp/10;            if(p==0)break;        }        return digits;    }};// http://blog.csdn.net/havenoidea/


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.