LeetCode 刷題筆記 數學篇

2021-10-02 17:01:12 字數 1950 閱讀 6660

知識點3:歸納法

知識點4:數列

知識點5:幾何

立體幾何

知識點6: 快慢指標

知識點7: 異或

知識點8: 最大數字限制

知識點9:大數求餘

第一次寫筆記,持續更新中。。。

方法一:轉化成string遍歷

方法二:每次除以10取餘數 (x % 10)

二進位制轉十進位制

int

(x,2

)

十進位制轉二進位制

bin

(x)

#1009. 十進位制整數的反碼

#171. excel表列序號

#13. 羅馬數字轉整數 (通過字典轉換)

#1317. 將整數轉換為兩個無零整數的和

當正確情況比錯誤情況多的多時,用隨機法生成是乙個好方法

#1025. 除數博弈:偶數先手贏,奇數先手輸

#258. 各位相加

return

(num -1)

%9+1

#268. 缺失數字

#1103. 分糖果 ii

一般來說可以使用動態規劃去計算楊輝三角某一行的值,當然,也可以直接用楊慧三角的公式來計算

獲取楊輝三角的指定行

直接使用組合公式c(n,i) = n!/(i!*(n-i)!)

則第(i+1)項是第i項的倍數=(n-i)/(i+1);

三角形面積計算:

海**式

p =

(a + b + c)/2

s = sqrt(p *

(p - a)

*(p - b)

*(p - c)

)

鞋帶公式

鞋帶公式計算公式解析

#976. 三角形的最大周長

#883. 三維形體投影面積 (題目不太嚴謹)

#892. 三維形體的表面積

這題我的第一反應是三檢視面積相加x2,但是發現答案並不對,原因是這個方法漏了中間凹進去的部分的表面積

迴圈問題使用快慢指標可以解決,只要有相遇說明就有迴圈

#202. 快樂數

#231. 2的冪

#268. 缺失數字

在驗證乙個數字是不是某個數字的冪是,可以先求出int範圍內該數字冪的最大值,然後直接判斷能否被最大數整除

#231. 2的冪

#326. 3的冪

首先需要知道大數越界這乙個概念,當指數增長時,結果會幾何倍數增長,有可能會超過 int32 或者 int64 的取值範圍,結果會返回錯誤,就無法對某個數求餘,所以接下來的方法就是如何解決大數求餘(該問題不需要在python中考慮)。

# 求 (x^a) % p —— 迴圈求餘法

defremainder

(x, a, p)

: rem =

1for _ in

range

(a):

rem =

(rem * x)

% p return rem

14-ii-jian-sheng-zi-iitan-xin-er-fen-f/

# 求 (x^a) % p —— 快速冪求餘

defremainder

(x, a, p)

: rem =

1while a >0:

if a %

2: rem =

(rem * x)

% p x = x **

2% p

a //=

2return rem

14-ii-jian-sheng-zi-iitan-xin-er-fen-f/

leetcode刷題筆記 陣列2

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。這道題主體思想是雜湊對映。python的字典就使用了hash的思想。直接貼 class solution def majorityelement s...

leetcode刷題筆記 陣列3

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列 現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。這裡的解答用到了投機取巧的一種方法,使用set函式 class solution def containsduplicate self,nums list int...

leetcode刷題筆記 陣列7

給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。class solution def removeduplicates self,nums list i...