LeetCode Pow(x, n)
来源:互联网 发布:php远程代码执行漏洞 编辑:程序博客网 时间:2024/06/06 14:23
LeetCode解题之Pow(x, n)
原题
求x的n次幂。
注意点:
- n是负数时需要取相反数
例子:
输入: x = 2, n = -1
输出: 0.5
输入: x = 2.1, n = 2
输出: 4.41
解题思路
最简答的方法就是把n个x直接做乘法,但这样要进行(n-1)次运算。现在以2**8
(表示2的8次方)作为例子,需要进行7次乘法,但如果当做(2**2)**4
->((2**2)**2)**2
来计算就只要做3次乘法。即当n为奇数时,直接乘上当前的x,偶数时x变为x的平方,n除以2。这样就可以较快速的求出结果。当n为负数时要取倒数。
AC源码
class Solution(object): def myPow(self, x, n): """ :type x: float :type n: int :rtype: float """ flag = 1 if n >= 0 else -1 result = 1 n = abs(n) while n > 0: if n & 1 == 1: result *= x n >>= 1 x *= x if flag < 0: result = 1 / result return resultif __name__ == "__main__": assert Solution().myPow(2, -1) == 0.5 assert Solution().myPow(2.1, 2) == 4.41
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
0 0
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- [Leetcode] Pow(x,n)
- 【leetcode】Pow(x, n)
- [LeetCode]Pow(x, n)
- [leetcode]Pow(x, n)
- LeetCode-Pow(x, n)
- LeetCode - Pow(x, n)
- LeetCode | Pow(x, n)
- Pow(x, n) -leetcode
- 【leetcode】Pow(x, n)
- 【Leetcode】Pow(x, n)
- LeetCode Pow(x, n)
- Leetcode: Pow(x, n)
- std::list(双向循环链表)的使用?
- MySQL性能剖析工具(pt-query-digest)
- leetcode之Rotate List
- 2015年中国互联网十大装逼词汇
- MFC显示图片信息,当前测试png jpg两种图片
- LeetCode Pow(x, n)
- 《Effective Modern C++》翻译--条款1: 理解模板类型推导
- Java 开发必会的 Linux 命令
- javaEE开发中使用session同步和token机制来防止并发重复提交
- Java正则表达式教程
- hdu 2567 寻梦
- CSV文件格式解析器的实现:从字符串Split到FSM
- 使用HandlerThread实现后台服务轮询执行任务
- Java内存泄露的理解与解决(转)