這道題目是求x的n次方。 可以選擇用n個x相乘,復(fù)雜度為O(n)(負(fù)數(shù)的-n個相乘再求倒數(shù)) 另外就是采取分治來算 分解為pow(x,n/2)*pow(x,n/2) 最后的復(fù)雜度應(yīng)該為logn+logn即為O(logn) 代碼如下:
public double myPow(double x, int n) { if (n==0) { return 1; } double temp=myPow(x, n/2); if (n%2==0) { return temp*temp; } else { if (n>0) { return temp*temp*x; } else { return temp*temp/x; } } }新聞熱點(diǎn)
疑難解答