給定乙個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。
你可以假設除了整數 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]
# -*- coding: utf-8 -*-
'''問題簡述:
給定乙個由整數組成的非空陣列所表示的非負整數,在該數基礎上加1.
考慮進製的問題
基本思路:
首先將序列倒序,那麼問題就變成了list的第一元素代表個位,十位,...,
然後建立乙個進製的識別符號,若+1後需要進製,則將當前list中元素變成0,後乙個元素+1.
若是最後一位,需要進製則直接在list後面插入乙個1即可。
最後在將陣列倒序。
'''class
solution()
:'''
input: list
output: list
'''defplusone
(self,nums)
: nums.reverse(
)# 倒序
for i in
range
(len
(nums)):
if nums[i]==9
:#若為9,+1則變為0
nums[i]=0
else
:#若不為9,+1後就將flag置位false,並且直接跳出迴圈
nums[i]+=1
break
if nums[-1
]==0and i+1==
len(nums)
:# i+1==len(nums)主要是判斷是否是list的最後一位。1)
nums.reverse(
)return nums
if __name__ ==
'__main__'
: ilist =[0
,0] solu = solution(
) res = solu.plusone(ilist)
print
('最終結果為:\n'
,res)
將list轉成int,然後+1,之後再轉回list即可。
# -*- coding: utf-8 -*-
'''問題簡述:
給定乙個由整數組成的非空陣列所表示的非負整數,在該數基礎上加1.
考慮進製的問題
基本思路:
將list轉成整數之後完成+1在變回list即可。
'''class
solution()
:'''
input: list
output: list
'''defplusone
(self,nums)
: str_digite =
[str
(i)for i in nums]
# 將各個元素變成字串
digite =
int(
''.join(str_digite)
) digite +=
1 rlist =
[int
(i)for i in
list
(str
(digite))]
return rlist
if __name__ ==
'__main__'
: ilist =[0
,0] solu = solution(
) res = solu.plusone(ilist)
print
('最終結果為:\n'
,res)
領扣 加一 Python實現
給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存乙個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...
指標加一操作
c c 裡面的陣列名字會退化為指bai針,所以陣列名a實際指的是du陣列的第乙個元素的zhi位址。而陣列名作dao為指標來講有特殊性,它正在它所指向的記憶體區域中,a的值和a的數值是相同的 可以輸出觀察一下 但是型別和意義不同。而指標的加法操作和指向的資料型別密切相關。比如 int a 10 a就相...
python演算法 加一
給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。這裡用到了遞迴的方法,最後乙個元素加一,如果最後乙個元素加一之後大於9,就進製 本位歸零,上一位加一,再檢測上一位,如果上一...