真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++如何實(shí)現(xiàn)加一運(yùn)算

這篇“C++如何實(shí)現(xiàn)加一運(yùn)算”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C++如何實(shí)現(xiàn)加一運(yùn)算”文章吧。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),青陽企業(yè)網(wǎng)站建設(shè),青陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,青陽網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,青陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

Plus One 加一運(yùn)算

Example 1:

Input: digits = [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.

Example 2:

Input: digits = [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.

Example 3:

Input: digits = [0]
Output: [1]

Constraints:

  • 1 <= digits.length <= 100

  • 0 <= digits[i] <= 9

將一個數(shù)字的每個位上的數(shù)字分別存到一個一維向量中,最高位在最開頭,我們需要給這個數(shù)字加一,即在末尾數(shù)字加一,如果末尾數(shù)字是9,那么則會有進(jìn)位問題,而如果前面位上的數(shù)字仍為9,則需要繼續(xù)向前進(jìn)位。具體算法如下:首先判斷最后一位是否為9,若不是,直接加一返回,若是,則該位賦0,再繼續(xù)查前一位,同樣的方法,知道查完第一位。如果第一位原本為9,加一后會產(chǎn)生新的一位,那么最后要做的是,查運(yùn)算完的第一位是否為0,如果是,則在最前頭加一個1。代碼如下:

C++ 解法一:

class Solution {
public:
    vector plusOne(vector &digits) {
        int n = digits.size();
        for (int i = n - 1; i >= 0; --i) {
            if (digits[i] == 9) digits[i] = 0;
            else {
                digits[i] += 1;
                return digits;
            }
        }
        if (digits.front() == 0) digits.insert(digits.begin(), 1);
        return digits;
    }
};

Java 解法一:

public class Solution {
    public int[] plusOne(int[] digits) {
        int n = digits.length;
        for (int i = digits.length - 1; i >= 0; --i) {
            if (digits[i] < 9) {
                ++digits[i];
                return digits;
            }
            digits[i] = 0;
        }
        int[] res = new int[n + 1];
        res[0] = 1;
        return res;
    }
}

我們也可以使用跟之前那道 Add Binary 類似的做法,將 carry 初始化為1,然后相當(dāng)于 digits 加了一個0,處理方法跟之前那道題一樣,參見代碼如下:

C++ 解法二 :

class Solution {
public:
    vector plusOne(vector& digits) {
        if (digits.empty()) return digits;
        int carry = 1, n = digits.size();
        for (int i = n - 1; i >= 0; --i) {
            if (carry == 0) return digits;
            int sum = digits[i] + carry;
            digits[i] = sum % 10;
            carry = sum / 10;
        }
        if (carry == 1) digits.insert(digits.begin(), 1);
        return digits;
    }
};

Java 解法二 :

public class Solution {
    public int[] plusOne(int[] digits) {
        if (digits.length == 0) return digits;
        int carry = 1, n = digits.length;
        for (int i = digits.length - 1; i >= 0; --i) {
            if (carry == 0) return digits;
            int sum = digits[i] + carry;
            digits[i] = sum % 10;
            carry = sum / 10;
        }
        int[] res = new int[n + 1];
        res[0] = 1;
        return carry == 0 ? digits : res;
    }
}

以上就是關(guān)于“C++如何實(shí)現(xiàn)加一運(yùn)算”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享文章:C++如何實(shí)現(xiàn)加一運(yùn)算
本文路徑:http://weahome.cn/article/pdcjee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部