leetcode第一刷_Plus One

來源:互聯網
上載者:User

這種類似大整數的處理的問題還是比較常見的,這道題應該是非常簡單的版本。

題目的要求是這樣的,輸入的vector靠前的位置是數位高位,因此應該先求出長度,然後從後面往前算。維護一個變數儲存進位,這我就不說了。結果的vector怎麼辦呢?因為最後有可能有個總的進位,比如999加1,結果的vector會比輸入的多出一位,因此結果還是從前往後存簡單一些。最後如果有進位,就多push_back一個1,然後reverse一下就行了,我當時不知道這個函數,所以又獻醜了。

class Solution {public:    vector<int> plusOne(vector<int> &digits) {        vector<int> res;        int t = digits[digits.size()-1] + 1;        int c = t/10, k=0;        res.push_back(t%10);        for(int i=digits.size()-2;i>=0;i--){            if(c){                int t = digits[i]+c;                res.push_back(t%10);                c = t/10;            }else{                res.push_back(digits[i]);            }        }        if(c)            res.push_back(1);        int len = res.size();        for(int i=0;i<len/2;i++){            int t = res[i];            res[i] = res[len-i-1];            res[len-i-1] = t;        }        return res;    }};


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.