LeetCode題目以及答案 10

2021-08-19 18:14:56 字數 1266 閱讀 6376

題目:給乙個非負整數 num,反覆新增所有的數字,直到結果只有乙個數字。

例如:設定 num = 38,過程就像: 3 + 8 = 11, 1 + 1 = 2。 由於 2 只有1個數字,所以返回它。

高階:你可以不用任何的迴圈或者遞迴演算法,在 o(1) 的時間內解決這個問題麼?

思路:巢狀兩次迴圈即可

**:

#!/usr/bin/env python

# encoding:utf-8

"""__author__:adam

功能:非負整數各位相加

第一種方法

"""class

solution

(object):

defadddigits

(self,num):

""" :type num:str

:type :int

"""sum_one = 0

num_one = 0

while(1):

while(num):

num_one = num % 10

sum_one += num_one

num /= 10

if(sum_one < 10):

break

num = sum_one

sum_one = 0

return sum_one

if __name__ == "__main__":

m = solution()

m.adddigits(1784)

方法二:借鑑他人經驗,假設輸入乙個四位數num,各位分別位a,b,c,d;

寫成:num = 1000*a + 100*b + 10*c + d = (999*a + 99*b + 9*c )+ (a + b + c +d)

num除以9的餘數等於(a+b+c+d)除以9餘數結果一樣

#!/usr/bin/env python

# encoding:utf-8

"""__author__:adam

功能:非負整數各位相加

第一種方法

"""class

solution

(object):

defadddigits

(self,num):

""" :type num:str

:type :int

"""return

1 + (num -1) % 9;[參考鏈結](

LeetCode題目以及答案

1 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數,你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 複雜版 usr bin python coding...

LeetCode題目以及答案(9)

題目 有兩種特殊字元。第一種字元可以用一位元0來表示。第二種字元可以用兩位元 10 或 11 來表示。現給乙個由若干位元組成的字串。問最後乙個字元是否必定為乙個一位元字元。給定的字串總是由0結束。示例 1 輸入 bits 1,0,0 輸出 true 解釋 唯一的編碼方式是乙個兩位元字元和乙個一位元字...

leetcode全部題目答案

32.longest valid parentheses given a string containing just the characters and find the length of the longest valid well formed parentheses substring....