50. Pow(x, n)
来源:互联网 发布:马士兵java 百度云 编辑:程序博客网 时间:2024/06/10 22:11
中心思想并不难,递归相乘就可以了,主要是对一些特殊情况的考虑。
1、n=0
2、n=INT_MAX
3、n=INT_MIN
4、n<0
递归的复杂度为ON,采用二分法可以把复杂度降到OlogN
class Solution {public: double myPow(double x, int n) { double res=1.0;//这里要定义成double啊喂 if(n==INT_MIN){ if(x==1) return x; else if(x==-1) return -x; else return 0; }//一开始只用INT_MAX判断,2,2147483648这个测试用例怎么都过不了,后来想想,因为2147483648不管正还是负都是INT_MIN啊 if(n==INT_MAX){ if(x==1||x==-1) return x; else return 0; } if(n==0) return 1.0;//考虑n=0的情况 if(n<0) return 1.0/pow(x,-n);//考虑n<0的情况 double half=pow(x,n>>1);//将复杂度从O(N)降到O(log(N) if(n%2==0) return half*half; else return half*half*x; }};
0 0
- 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)
- 50.Pow(x,n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- empty()与isset()的区别
- iOS开发如何判断字符串是否是整数,浮点数,纯数字
- centos6.7源码搭建lamp(mysql)
- Android studio design界面的布局文件无法预览
- 个人学习传智博客新巴巴运动网系列---ssm框架
- 50. Pow(x, n)
- Backbone入门指南(五):Collection (数据模型集合)
- poj 3061
- C#反射操作常用方法
- Android - ScrollView 监听滑动停止,顶部还是底部?
- 常见130个java
- CPU内中断和外中断
- 华山游记
- 微信小程序网络请求的封装与填坑之路