/**
* 面試題16:數值的整數次方
* 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。
* 保證base和exponent不同時為0
* @author
* @create 2021-03-17 14:51
*/public
class
solution16
public
static
double
power
(double base,
int exponent)
if(exponent <0)
//return powerwithexponent(base,exponent);
// return powerwithexponentrecursion(base,exponent);
return
powerwithexponentnonrecursion
(base,exponent);}
/** * 常規求解,時間複雜度為o(n)
* @param base
* @param exponent
* @return
*/public
static
double
powerwithexponent
(double base,
int exponent)
if(exponent ==1)
double result =
1.0;
for(
int i =
0; i< exponent; i++
)return result;
}/**
* 遞迴法(快速冪)
* 時間複雜度:o(logn),因為n的二進位制位個數為logn
* 空間複雜度:o(1)
* @param base
* @param exponent
* @return
*/public
static
double
powerwithexponentrecursion
(double base,
int exponent)
if(exponent ==1)
double result =
powerwithexponentrecursion
(base, exponent >>1)
; result *= result;
//exponent為偶數時,result為base的平方,4次方,8次方,16次方if(
(exponent &1)
==1)return result;
}public
static
double
powerwithexponentnonrecursion
(double base,
int exponent)
x *= x;
//x的2次方、4次方、8次方。。。
exponent >>=1;
}return ret;
}}
劍指offer 面試題16
include 思路 遍歷鍊錶過程中,將各個指標入棧,再出棧進行反轉 listnode reverselist listnode phead pnode pnodestack.top listnode pfront pnode pnodestack.pop while pnodestack.empt...
劍指Offer 面試題16 數值的整數次方
給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0 題目比較簡單,但是需要全面考慮問題,主要是對冪次進行分類,1.exponent 0 這種情況只需要進行常規操作,無需特殊處理2.exponent 0...
劍指offer 面試題16 數值的整數次方
問題 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。輸入 double型浮點數base,int型整數exponent。輸出 double型結果。思路 本題思路不難,但是容易忘記處理各種邊界值,異常值。當exponent為正數時,base...