python實現加一操作

2021-10-12 16:27:13 字數 2071 閱讀 4382

給定乙個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。

最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。

你可以假設除了整數 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,就進製 本位歸零,上一位加一,再檢測上一位,如果上一...