給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入陣列表示數字 123。
示例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入陣列表示數字 4321。
看到題目覺得非常簡單 只需要找到list的最後乙個下標位置使其加一 即可。
然而天真如我 下面情況才是這題的重點
輸入: [9,9,9]
輸出: [1,0,0,0]
解釋: 輸入陣列表示數字 999。
需要考慮進製的情況
重新思考:
筆者想到的是先將陣列數字轉為十進位制數字,然後加一,接著按位取模得到每一位的值。
上**(花費時間48ms)擊敗70%
然後舉出比較正常的方法在學習過程中有什麼不懂得可以加
我的python學習交流扣扣qun,688244617
群裡有不錯的學習教程、開發工具與電子書籍。
與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容。
1import math
2class
solution:3
defplusone
(self, digits):4
""" 5 :type digits: list[int]
6 :rtype: list[int]
7 """
8 a=
19 num=
010 lens=
len(digits)
11for i in
range
(lens-1,
-1,-
1):12 num=num+digits[i]
*a13 a=a*
10#獲得list的十進位制數字
14 num=num+115
16bytes
=int
(math.log10(num)
)#計算數字的位數
17 lens_new=
bytes+1
18 result=
1920
for i in
range
(lens_new)
:21 single=
int(num/(10
**(bytes
-i))
)#得到每一位的數字
23 num=num-single*
10**
(bytes
-i)#將得到的位數減去
24return result
2526
if __name__==
"__main__"
:27 s=solution(
)28 a=[9
,9,9
]29print
(s.plusone(a)
)
思路:對每個值遍歷判斷,如果為9則變為0,並且繼續遍歷,如果為0到8則加1操作,並且break退出判斷
上**(用時44ms)擊敗98%
1
class
solution:2
defplusone
(self,digits):3
""" 4 :param digits:list[int]
5 :return:list[int]
6 """7#
8for i in
range(1
,len
(digits)+1
):#對每乙個值遍歷9if
(digits[
-i]==9)
:#如果為9則變為0
10 digits[
-i]=011
else
:#如果加1則退出
12 digits[
-i]+=113
break
14if
(digits[0]
==0):
#如果全都是9那麼第一位為1後面加乙個0
15 digits[0]
=1#eg:[9,9,9] --> [1,0,0,0]0)
17return digits
18if __name__==
"__main__"
:19 s=solution(
)20 a=[5
,9,8
]21print
(s.plusone(a)
)
python leetcode 6 Z 字形變換
將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiiged...
python leetcode 最大回文數
直接暴力求解時間超出,選取manacher演算法 class solution def longestpalindrome self,s t join s 前後插入 是為了防止越界,不需要進行邊界判斷 n len t p 0 n 每一處的回文半徑 c r 0 r為當前訪問到的最右邊的值,c為此時對稱...
python LeetCode 奇偶鍊錶
給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...