经蛋蛋介绍,才知道leetcode,看了一下,题目还不错,只要求写出部分代码,实现某一个功能,貌似比较接近公司的面试题。还有就是题目描述简洁,哈哈。
题目描述:Implement pow(x, n).
C语言版:
测试数据比较严,还有负数,比较奇葩的是测试数据包含有INT_MIN,此处应注意它是不能通过改变符号转化为int型的,因为转化之后已经溢出int型
double myPow(double x, int n) { double s = 1.0; if (n < 0){ if(n == INT_MIN) return 1.0 / (myPow(x, -(n + 1)) * x); return 1.0 / myPow(x, -n); } while(n){ if(n & 1) s *= x; x *= x; n = n >> 1; } return s; }python版:
python版简直就是开挂,一行代码搞定,人生苦短,唯有python~
class Solution: def pow(self, x, n): return x ** n