leetcode50 Pow(x, n)
来源:互联网 发布:涂师傅数据恢复注册码 编辑:程序博客网 时间:2024/06/05 04:00
50. Pow(x, n)
Total Accepted: 83619 Total Submissions: 299730 Difficulty: Medium
Implement pow(x, n).
二分法求快速幂,时间复杂度为O(logn)。
测试数据有各种负数,真是醉了
最初的AC代码:
class Solution {public: double myPow(double x, int n) { if (0 == n || 1 == x) return 1; if (-1 == x) { if (n & 1) return -1; return 1; } if (-2147483648 == n) return 0; double ret = 1; int k = abs(n); while (k) { if (k & 1) { ret *= x; } x *= x; k >>= 1; } if (n > 0) return ret; return 1 / ret; }};
改进后的AC代码:
class Solution {public: double myPow(double x, int n) { if (0 == n) return 1; if (INT_MIN == n) n += 2; //n绝对值比较大,加2避免溢出,也无伤大雅 double ret = 1; int k = abs(n); while (k) { if (k & 1) { ret *= x; } x *= x; k >>= 1; } if (n > 0) return ret; return 1 / ret; }};
0 0
- Leetcode50 Pow(x, n)
- Leetcode50 Pow(x, n)
- leetcode50 Pow(x, n)
- leetcode50. Pow(x, n)
- leetcode50. Pow(x, n)
- Leetcode50. Pow(x, n)
- LeetCode50 pow(x, n)
- 【LeetCode】LeetCode50 Pow(x, n)
- LeetCode50——Pow(x,n)
- leetcode50-Pow(x, n)(实现浮点数的幂运算)
- 剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
- Pow(x, n) / Super Pow
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- 关于两个可移动ViewGroup触摸事件冲突处理
- 云管端概念
- elasticsearch小记之--sort的type
- shell脚本中echo显示内容带颜色
- 召回率与准确率概念
- leetcode50 Pow(x, n)
- 64位Ubuntu使用john破解密码的No password hashes loaded
- Sublime text配置php运行环境
- 分支限界法求解旅行商问题
- 插入排序法 php
- [leetcode] 297. Serialize and Deserialize Binary Tree 解题报告
- 思考下:工作沟通工具的选择(QQ?、微信?、邮件?、m2m还是其他的?)
- 55. Jump Game
- 如何设置约束让三个按钮平分UIView容器的宽度