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)。
查看全文
相关阅读:
【Matlab】把一年中的某一天(从1月1日起)换算成日期
【工具】用hexo搭建博客
【工具】文献分析工具histcite的简单使用
【工具】用PPT排版打印海报时图片分辨率问题
【工具】PPT插入高清图片保存后图片变模糊的解决方法
【工具】排版软件TeX Live 2016的简单使用
【工具】文字识别软件(OCR) ABBYY Finereader 11简单使用
【Matlab】编程风格摘录
【信号】用matlab实现一维信号的高斯滤波
【GMT5】用GMT绘制测高卫星Topex_Poseidon_Jason的地面轨迹
原文地址:https://www.cnblogs.com/xiaobaizzz/p/12313937.html
最新文章
查看mySQL是否已经启动服务
如何在DOS方式下使用sqlcmd
SQL 习题2
SQL 习题1
sql 2008 登录不上的解决方法
sql 写一个查询打印所有质数小于或等于1000,打印在同一行上,用&分隔开
sql 打印出一个图形
Java内部类的一些注意事项
jsp页面间对象传递方法
Java序列化的理解与学习
热门文章
如何直观理解粒子滤波并进行Python编程实践
分类交叉熵与二元交叉熵区别?Categorical Cross-Entropy Loss, Binary Cross-Entropy Loss
[易懂实例讲解]离散型贝叶斯滤波python编程代码实践
易懂的机器人理论与实践(2): 机器人移动模型建模(Motion model)Python代码编程实现
技巧:python如何对某段代码运行时间计时
机器人理论与实践(1): 差速驱动原理与python编程模拟 (控制模型建模)
PyTorch代码识别手写数字
随机梯度下降与梯度下降的区别?
对L1,L2正则化和dropout的理解
pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward
Copyright © 2011-2022 走看看