Leetcode之數學計算法專題

2021-06-16 19:10:04 字數 560 閱讀 6570

1. pow(x, n)

2. sqrt(x)

3. divide two integers

4. multiply strings

5. add two numbers

三道數學題,分別用了分治法,二分查詢法和不標準的二分查詢法。

第一題巧妙地運用了n除二的最終形態使n小於零的公式:half*half/x變成了1*1/x,最終把原有的四種情況,降到了三種情況,非常有技巧的一道題。

第二題,一道開平方的數學題竟然用到了二分查詢法,足可見數學在計算機領域裡的強大地位。

第三題,涉及到位運算和二進位制的題,一般都會難道我,這次更不例外,好不容易看懂了,簡單說下要點:從高位往低位遍歷被除數,每一次遍歷到的數字如果大於除數,結果加一,下一次迴圈結果乘二,哦,還有,遍歷到的數字需要減去除數,為的是不把高位運算過的值帶到低位。

最後提一下,int型別在這類題中可能需要轉換為long型別,防止位數超出正負取反。

第四題比較有難度,解決的演算法也相當經典,值得一看。

第五題,是cc150最後一章的第一題,很經典,從本質上講述了電腦是如何執行加法的,值得一看。

leetcode演算法專題訓練 十四 位操作專題

50.pow x,n 題目描述 實現 pow x,n 即計算 x 的 n 次冪函式。100.0 x 100.0 n 是 32 位有符號整數,其數值範圍是 2 31,2 31 1 解題思路 基於二進位制的快速冪運算,x n 求解,將 n 轉化為二進位制數,不斷在二進位制數的n末尾判斷是1還是0,是1的...

leetcode演算法專題訓練 四 棧與佇列專題

劍指 offer 09.用兩個棧實現佇列 解題思路 設定兩個佇列,左邊的佇列用來入隊,右邊的佇列用來出隊。時間複雜度 o 1 空間複雜度 o 1 class cqueue void int value intdeletehead int val stk2.top stk2.pop return va...

LeetCode之遞迴演算法

何為遞迴?程式反覆呼叫自身即是遞迴。我自己在剛開始解決遞迴問題的時候,總是去糾結這一層函式做了什麼,它呼叫自身後的下一層函式又做了什麼。然後就會覺得實現乙個遞迴解法十分複雜,根本就無法下手。這是乙個思維誤區,一定要走出來,既然遞迴是乙個反覆呼叫自身的過程,這就是說它的每一及的功能都是一樣的,因此我們...