Leetcode 50. Pow(x, n)
来源:互联网 发布:手机淘宝没有社区 编辑:程序博客网 时间:2024/06/05 17:47
class Solution {public: double myPow(double x, int n) { if (n == 0) return 1; if (n == INT_MIN) return 1 / (x * myPow(x, -(INT_MIN + 1))); int exp = 1; double ret = x; while (exp <= n / 2) { exp *= 2; ret *= ret; } return (n < 0) ? 1 / (ret * myPow(x, -n - exp)) : ret * myPow(x, n - exp); } };
class Solution {public: double myPow(double x, int n) { if (n == 0) return 1; if (n == INT_MIN) return 1 / (x * myPow(x, -(INT_MIN + 1))); int exp = 0; double ret = 1; // n >= 2 int absn = abs(n); while (absn - exp >= 2) { // tmpe value double rt = x; int et = 1; while (et <= (absn - exp) / 2) { et *= 2; rt *= rt; } exp += et; ret *= rt; } if (absn - exp == 1) ret *= x; return (n < 0) ? 1 / ret : ret; } };
参考后
class Solution {public: double myPow(double x, int n) { if (n == 0) return 1; double t = myPow(x, n / 2); if (n % 2 ) { if (n < 0) { return 1 / x * t * t; } else return x * t * t; } // n % 2 == 0 return t * t; } };
用动态规划应该速度上会快
这里写代码片
阅读全文
0 0
- [LeetCode]50.Pow(x, n)
- LeetCode --- 50. Pow(x, n)
- [Leetcode] 50. Pow(x, n)
- [leetcode] 50.Pow(x, n)
- LeetCode 50. Pow(x, n)
- 50. Pow(x, n) LeetCode
- [leetcode] 50. Pow(x, n)
- Leetcode 50. Pow(x, n)
- [LeetCode]50. Pow(x, n)
- LeetCode *** 50. Pow(x, n)
- LeetCode 50. Pow(x, n)
- LeetCode 50. Pow(x, n)
- 【LeetCode】50. Pow(x, n)
- [leetcode]50. Pow(x, n)
- LeetCode-50.Pow(x, n)
- LeetCode - 50. Pow(x, n)
- [LeetCode] 50. Pow(x, n)
- LeetCode 50. Pow(x, n)
- 读懂数据流WireShark
- 机器学习中的维度灾难
- 码云 idea 插件
- oracle中的ID号实现自增长的方法
- 面试心得与总结(三)
- Leetcode 50. Pow(x, n)
- larave-查询日志(sql语句打印)
- final和static区别
- mybatis常用sql
- 微信开发模式下如何进行自定义菜单配置
- Gson详解--入门篇
- 【文字识别】百度AI之运行IOS示例(Demo)工程总结
- c#操作webservice
- 说话的套路