九章演算法 CVTE面試題 x的n次冪

2021-10-21 17:01:14 字數 839 閱讀 3758

描述

實現 pow(x, n). (n是乙個整數)

不用擔心精度,當答案和標準輸出差絕對值小於1e-3時都算正確

lintcode 領扣

樣例1

輸入: x = 9.88023, n = 3 

輸出: 964.498

樣例2

輸入: x = 2.1, n = 3 

輸出: 9.261

樣例3

輸入: x = 1, n = 0 

輸出: 1

注意 n 可能是負數, 需要求一下倒數, 可以在一開始把x轉換成倒數, 也可以到最後再把結果轉換為倒數.

那麼現在我們實現 pow(x, n), n 是正整數的版本:

二分即可: 有xn=xn/2∗xn/2xn=xn/2∗xn/2, 因此可以在 o(logn) 的時間複雜度內實現.

又叫快速冪. 有遞迴實現和迴圈實現的版本.

還可以參考一下 fast power 中的二進位制的做法。

public

class

solution

double

ans=1,

tmp=x;

while(n

!=0)tmp

*=tmp;n

/=2;}

if(isnegative

)return

ans;

}}

更多題解參考:九章演算法

九章演算法 Google面試題 內積

描述 給定長度為n的a陣列,長度為k的b陣列 你可以從a陣列裡取k個數 規則如下 即每次可以從a陣列的最左邊或者最右邊取走乙個數,取走的數從陣列中移除 將取出的ai按取出的順序組成c陣列 求b與c的內積最大值 b與c內積為 i 0k 1bi ci 解釋1 a 1,4,3,2,5 b 1,2,3,4 ...

九章演算法面試題32 小球排序

有紅黃藍三色的小球若干排成一列,這些小球進行排序,請使用盡量少的空間和時間。假設順序為紅色黃色藍色。用兩根指標從頭開始遍歷,第一根指標遇到非紅色時停下,如果第二根指標找到第一根指標之後的第乙個紅色停下,交換兩根指標所指顏色。重複上述過程。直到第二根指標找不到任何紅色。此時第一根指標到最後都是黃色或藍...

九章演算法面試題33 陣列波峰

乙個陣列a 1.n 假設陣列中沒有任何相鄰兩數相等,滿足a 1 n。a i 被稱為波峰,當且僅當a i a i 1 並且a i a i 1 請找到陣列中的乙個波峰。假設陣列中存在相鄰相等的數,該怎麼做?根據條件a 1 a n 可知a中一定存在波峰。用二分法,選擇中點mid,如果a mid 是波峰,則...