LeetCode (2) - swift 实现数组 加一
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 基础常用数据结构
- 下一篇: 函数的概念解析