?歡迎訂閱《leetcode》專欄,每日一題,每天進步?
難道就我一個人看不懂題?
——leetcode此題熱評
前言
哈嘍,大家好,我是一條,
糊涂演算法,難得糊涂
Question
66. 加一
難度:簡單
給定一個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一,
最高位數字存放在陣列的首位, 陣列中每個元素只存盤單個數字,
你可以假設除了整數 0 之外,這個整數不會以零開頭,
示例 1:
輸入:digits = [1,2,3] 輸出:[1,2,4] 解釋:輸入陣串列示數字 123,示例 2:
輸入:digits = [4,3,2,1] 輸出:[4,3,2,2] 解釋:輸入陣串列示數字 4321,示例 3:
輸入:digits = [0] 輸出:[1]
Solution
這個題乍一看超級簡單,其實比較復雜的情況案例沒有給出
[9,9]-->[1,0,0]
- 無進位,正常加一
[2,4]-->[2,5] - 有進位,置零往前繼續判斷:
[4,9]-->[5,0] - 有進位,位數增加:
[9,9]-->[1,0,0]
Code
所有
leetcode代碼已同步至github歡迎
star
/**
* @author yitiaoIT
*/
class Solution {
public int[] plusOne(int[] digits) {
int len = digits.length;
for(int i = len - 1; i >= 0; i--) {
digits[i]++;
digits[i] %= 10;
if(digits[i]!=0)
return digits;
}
digits = new int[len + 1];
digits[0] = 1;
return digits;
}
}
Result
復雜度分析
- 時間復雜度:O(N^2)

🌈尋寶
?今天是堅持刷題更文的第35/100天
?各位的點贊、關注、收藏、評論、訂閱就是一條創作的最大動力
?更多演算法題歡迎關注專欄《leetcode》
為了回饋各位粉絲,禮尚往來,給大家準備了一些演算法教學視頻和電子書
需要的小伙伴可以私信我領取,不過一定要先關注哦!不然無法發私信!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295631.html
標籤:java
上一篇:如何解決服務之間的通信問題?
