日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode (2) - swift 实现数组 加一

發(fā)布時間:2025/6/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode (2) - swift 实现数组 加一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目

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

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

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

示例 1:

輸入: [1,2,3] 輸出: [1,2,4] 解釋: 輸入數(shù)組表示數(shù)字 123。 復(fù)制代碼

示例 2:

輸入: [4,3,2,1] 輸出: [4,3,2,2] 解釋: 輸入數(shù)組表示數(shù)字 4321。 復(fù)制代碼class Solution {func plusOne(_ digits: [Int]) -> [Int] {if digits.isEmpty {return digits}//這里這樣寫的原因是,參數(shù)digits是let定義的不可變的哦var digits = digitsfor i in (0..<digits.count).reversed() {if digits[i] < 9 {digits[i] += 1return digits}digits[i] = 0}//運行至此說明carray還是等于1,即全是9的情況,需要在首位插入數(shù)字1digits.insert(1, at: 0)return digits} } 復(fù)制代碼func plusOne(_ digits:[Int]) -> [Int] {// 數(shù)組為空 直接返回if digits.isEmpty {return digits}var digits = digitsfor i in (0..<digits.count).reversed() {if digits[i] < 9 {digits[i] += 1return digits}digits[i] = 0}digits.insert(1, at: 1)print(digits)return digits }plusOne([1,2,3])復(fù)制代碼

解題思路 :

1) 數(shù)組不存在直接retur 2) 對拿到的數(shù)組進行swift 反向遍歷, 反向遍歷是swift 的新特性 2.1) 如果0 位<9 直接將0 位加1 返回 2.2) 如果0 為為9 需要將0 為設(shè)置為0 , 如果1位為9 繼續(xù)將1位設(shè)置+1 返回 2.3) 如果N位都為 0 ,就插入1 在第一位 digits.insert(1, at: 1)將元素插在數(shù)組的最左邊復(fù)制代碼

轉(zhuǎn)載于:https://juejin.im/post/5c84d34ef265da2dd6392aa8

總結(jié)

以上是生活随笔為你收集整理的LeetCode (2) - swift 实现数组 加一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。