zoukankan
html css js c++ java
leetcode 50.Pow(x, n)
思路:
众所周知,如果要求x的n次方,最朴素的方法一定是把x连乘n次,这样时间复杂度是O(n),显然太差了。
优化1:如果能求得2^k = n的话,x^n = x^(2^k) = (x^2)^k,只需要将x^2连乘k次,这样时间复杂度是O(log2n),但是很难找到这样的k。
优化2:只要能找到2^k1 + 2^k2 + ... = n就好了,这样时间复杂度还是O(log2n)。
这一想法可以通过位运算轻易解决,比如9的二进制是1001,也就是从右往左数第i位是1,答案就乘上x^(2^i)。
查看全文
相关阅读:
JAVA 接口与抽象类(interface与abstract)的区别
接口测试的测试点
HTTP协议首部及Fiddler工具工作原理
Android自动化测试AppiumLibrary库关键字
蔬菜水果购买记
健胃饮食
榨汁机食谱
随机权值平均
周鸿祎IOT发布会思考
Bilinear CNN与 Randomly Wired Neural Network
原文地址:https://www.cnblogs.com/xiaobaizzz/p/12313937.html
最新文章
操作数据库时遇到的错误汇总
pyfiglet:生成充满艺术风格的文字
xpinyin:能轻松地将汉字转为拼音的库
shortuuid:短的uuid
spring mvc 接入cas登录
mybatis plus的条件构造器
mybatis plus CRUD
spring mvc 程序
spring mvc 初始
java的继承 和super关键字 构造器
热门文章
Java MVC设计模式
面向对象的封装, 构造器, this
递归以及面向对象部分练习题
Linux小常识
RMI
二叉树遍历原则
我如何做接口测试
HTTP详解
shell脚本每隔2s获取某个进程的cpu和mem数据并保存到csv文件
数组中出现次数超过一半的数字(查找)
Copyright © 2011-2022 走看看