給定乙個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。(老規矩第乙個是我寫的,後面的兩個我從執行時間和消耗記憶體最少個抄了乙個)
class solution(object):
def plusone1(self, digits):
""":type digits: list[int]
:rtype: list[int]
"""if digits[0] == 0:
digits[-1] += 1
return digits
int_str = ""
for item in digits:
int_str += str(item)
ret_str = str(int(int_str) + 1)
return [int(item) for item in ret_str]
def plusone2(self, digits):
""":type digits: list[int]
:rtype: list[int]
"""newlst =
while digits and digits[-1] == 9:
digits.pop()
if not digits:
return [1] + newlst
else:
digits[-1] += 1
return digits + newlst
def plusone(self, digits):
""":type digits: list[int]
:rtype: list[int]
"""digits[-1] = digits[-1] + 1
time_num = 0
res_num =
for i in range(len(digits), 0, -1):
num = (time_num + digits[i-1]) # 這裡是關鍵
if num > 9:
time_num = 1
else:
time_num = 0
if time_num:
res_num.reverse()
return res_num
if __name__ == '__main__':
s1 = solution()
digits = [4, 3, 2, 1]
digits = [1, 9, 9, 9]
print(s1.plusone(digits))
13 加一問題
我的 不同的提交竟然有一次是100 了,說明是網路問題 public static int plusone int digits if div 1 return nums return digits 看一下排名比較靠前的 吧,以後不能用演算法來套題目,要根據題目來套演算法,不同的題目要用不同的演算法...
LeetCode 加一問題
題目描述 給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一.最高位數字存放在陣列的首 位,陣列中每個元素只儲存單個數字.你可以假設除了整數 0 之外,這個整數不會以零開頭.測試用例 輸入 digits 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。思路 加一問題也就是...
對於加一問題的思考
給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存乙個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...