最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言題解LeetCode66加一示例詳解

 更新時(shí)間:2022年12月30日 15:04:22   作者:劉09k11  
這篇文章主要為大家介紹了go語言題解LeetCode66加一示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

原題鏈接 :

66. 加一

給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。

最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個(gè)元素只存儲(chǔ)單個(gè)數(shù)字。

你可以假設(shè)除了整數(shù) 0 之外,這個(gè)整數(shù)不會(huì)以零開頭。

示例 1:

輸入:digits = [1,2,3]
輸出:[1,2,4]
解釋:輸入數(shù)組表示數(shù)字 123。

示例 2:

輸入:digits = [4,3,2,1]
輸出:[4,3,2,2]
解釋:輸入數(shù)組表示數(shù)字 4321。

示例 3:

輸入:digits = [0]
輸出:[1]

提示:

1 <= digits.length <= 100

0 <= digits[i] <= 9

思路分析

對(duì)于一般的數(shù)字,直接在末位加一即可,

本題特殊的兩個(gè)點(diǎn):

若加一之后的值為10,需要進(jìn)一位

若數(shù)字為類似999 ,加一之后需要多一位數(shù)。使用insert()來實(shí)現(xiàn), insert函數(shù) : vec.insert(begin()+i ,a) 在第i個(gè)元素插入a

AC 代碼

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int size = digits.size();
        if(digits[size-1] != 9) //若末位不等于9,正常加一
        {
            ++digits[size-1];
        }
        else //若末位等于9,加一等于0
        {
            digits[size-1] = 0;
            for(int i = size - 1; i >0; --i) //若加完一后若等于0,下一位要進(jìn)一 如869
            {
                if(digits[i] == 0)
                {
                    digits[i-1] = (digits[i-1] + 1) % 10;
                }
                else
                    break; //若某一位是數(shù)不需要進(jìn)一,跳出循環(huán)
            }
            if(digits[0] == 0) //若到最后最高位也等于0,需要多一位數(shù) 如99 + 1  此時(shí)為答案為00,進(jìn)行一下操作
            {
                digits.insert(digits.begin(),1); //在最高位插入1
            }
        }
        return digits;
    }
};

小結(jié)

題目不長(zhǎng),但是還是有點(diǎn)拗口的感覺,首先要先弄明白題意,然后正常的思路下考慮進(jìn)位的溢出等就可以解出來。

JavaScript 66題

代碼

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    //先遍歷 從右向左
    for(let i = digits.length-1;i>=0;i--){
        if(digits[i] !==9){
            digits[i]++
                return digits;
        }else{
            // 是 9
            digits[i] = 0
        }
    }
    let result = [1,...digits];
    /* let result = [1].concat(digits);
    digits.unshift(1);
 */
    return result;
};

python3 循環(huán)判斷

分析:

這是一道基礎(chǔ)的屬組倒序查找的問題,唯一需要關(guān)注的就是類似[9,9]的場(chǎng)景,循環(huán)后需要看是否需要進(jìn)位。

如果需要進(jìn)位,則在數(shù)組0位置插入1,才能保證接過的正確性。

class Solution:
    def plusOne(self, digits):
        count = 1
        for i in range(len(digits) - 1, -1, -1):
            count, digits[i] = divmod(digits[i] + count, 10)
            if count == 0:
                break
        if count:
            digits.insert(0,count)
        return digits

JAVA解決進(jìn)位問題

解題思路

倒著看,不為9,直接加1,返回:為9的話,需要進(jìn)位,變成0即可;

特殊情況 9 99 等,一直為9的,結(jié)果肯定是10 ,100 數(shù)組長(zhǎng)度加1 ,首位為1

代碼

class Solution {
    public int[] plusOne(int[] digits) {
        int length = digits.length;
        // 最后一個(gè)不為九的數(shù)加1,為九的變0,9 99 單獨(dú)處理
        for (int i =  length - 1; i >= 0; i--) {
            if(digits[i] != 9){
                digits[i] = digits[i] + 1;
                return digits;
            }else {
                digits[i] = 0;
            }
        }
        int[] ints = new int[length + 1];
        ints[0] = 1;
        return ints;
    }
}

以上就是go語言題解LeetCode66加一示例詳解的詳細(xì)內(nèi)容,更多關(guān)于go題解LeetCode66加一的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于golang中container/list包的用法說明

    基于golang中container/list包的用法說明

    這篇文章主要介紹了基于golang中container/list包的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 深入探索Go語言中的高效數(shù)據(jù)結(jié)構(gòu)堆

    深入探索Go語言中的高效數(shù)據(jù)結(jié)構(gòu)堆

    堆,作為一種基本的數(shù)據(jù)結(jié)構(gòu),以其在優(yōu)先隊(duì)列和排序算法中提供高效解決方案的能力而聞名。在本文中,我們將深入探討堆的內(nèi)部工作原理,包括其特性、實(shí)現(xiàn)細(xì)節(jié)以及在現(xiàn)代編程中的應(yīng)用
    2008-06-06
  • 深入理解?Go?中的字符串

    深入理解?Go?中的字符串

    這篇文章主要介紹了深入理解?Go?中的字符串,在編程語言中,字符串發(fā)揮著重要的角色。字符串背后的數(shù)據(jù)結(jié)構(gòu)一般有兩種類型,一種在編譯時(shí)指定長(zhǎng)度不能修改,一種具有動(dòng)態(tài)的長(zhǎng)度可以修改,下文更多相關(guān)資料需要的小伙伴可以參考一下
    2022-05-05
  • 解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問題

    解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問題

    這篇文章主要介紹了解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • golang?RPC包原理和使用詳細(xì)介紹

    golang?RPC包原理和使用詳細(xì)介紹

    golang的rpc支持三個(gè)級(jí)別的RPC:TCP、HTTP、JSONRPC。但Go的RPC包是獨(dú)一無二的RPC,它和傳統(tǒng)的RPC系統(tǒng)不同,它只支持Go開發(fā)的服務(wù)器與客戶端之間的交互,因?yàn)樵趦?nèi)部,它們采用了Gob來編碼
    2022-09-09
  • GO中?分組聲明與array,?slice,?map函數(shù)

    GO中?分組聲明與array,?slice,?map函數(shù)

    這篇文章主要介紹了GO中?分組聲明與array,slice,map函數(shù),Go語言中,同時(shí)聲明多個(gè)常量、變量,或者導(dǎo)入多個(gè)包時(shí),可采用分組的方式進(jìn)行聲明,下面詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • 詳細(xì)介紹Go語言之?dāng)?shù)組與切片

    詳細(xì)介紹Go語言之?dāng)?shù)組與切片

    這篇文章介紹Go語言之?dāng)?shù)組與切片,數(shù)組是具有相同唯一類型的一組已編號(hào)且長(zhǎng)度固定的數(shù)據(jù)項(xiàng)序列,這種類型可是任意的原始類型如整形、字符串或自定義類型。切片是數(shù)組的一個(gè)引用,因此切片是引用類型,在進(jìn)行傳遞時(shí),遵守引用傳遞的機(jī)制,下面我們就來詳細(xì)了解一下該內(nèi)容
    2021-10-10
  • Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對(duì)象方法詳解

    Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對(duì)象方法詳解

    這篇文章主要為大家介紹了Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對(duì)象方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • go日志庫中的logrus

    go日志庫中的logrus

    這篇文章主要介紹了go日志庫中的logrus主要包括go日志庫logrus的安裝和使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    這篇文章主要介紹了Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法,實(shí)例分析了ToLower和ToUpper函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02

最新評(píng)論

乐至县| 婺源县| 靖边县| 乐东| 辰溪县| 通河县| 芜湖市| 湘潭市| 黔西县| 黑水县| 保靖县| 阳东县| 北流市| 龙州县| 扬州市| 甘南县| 宁河县| 柳林县| 板桥市| 堆龙德庆县| 枝江市| 大埔县| 兴国县| 海伦市| 宜兰市| 安福县| 历史| 瑞丽市| 梧州市| 绥芬河市| 扎兰屯市| 千阳县| 项城市| 司法| 沐川县| 临安市| 鸡泽县| 灵山县| 凤庆县| 萍乡市| 波密县|