【Medium】50. Pow(x, n)
来源:互联网 发布:乘法表问题 算法 编辑:程序博客网 时间:2024/06/08 14:06
Implement pow(x, n).
中心思想:
这题需要注意n有几种特殊情况:
n = 1, return 0
x = 0, n必须为非负数
n < 0, 结果要变为分母
n = -INT_MIN时,不能直接使用-n, 要用INT_MAX
解法一:用递归方法将n个x乘起来
解法二(O(logn)):利用对称性,pow(x,n) = pow(x,n/2)*pow(x,n-n/2)
class Solution {public: double myPow(double x, int n) { if (n == 0) return 1.0; else if (n < 0){ if (n == INT_MIN) return 1.0/(x*myPow(x, INT_MAX)); else return 1.0/myPow(x, -n); } double half = myPow(x, n>>1); if (n%2 ==0) return half*half; else return half*half*x; }};
0 0
- 【Medium】50. Pow(x, n)
- Leetcode 50. Pow(x, n) (Medium) (cpp)
- [Leetcode 50, Medium] Pow(x, n)
- LeetCode-50-Pow(x, n)( 二分法)-Medium
- Medium 50题 Pow(x, n)
- (算法分析Week3)Pow(x,n)[Medium]
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 从一行代码里学点JavaScript
- 高通 Hexagon DSP 代码结构
- RDD创建操作
- Android 微信支付
- PHP利用apktool.jar自动打包解包
- 【Medium】50. Pow(x, n)
- @RequestMaping的用法
- Highcharts 柱图往边框与阴影
- 如何打印请求的AFN请求的json串。
- 设计模式
- 初涉java(线程)
- Spark核心RDD:combineByKey函数详解
- 纯C++实现的HTTP请求封装(POST/GET)
- Android的Message机制(简单小结)