当前位置: 首页 > news >正文

leetcode-50.Pow(x,n)

快速计算次方的方法。
首先,先保证n是正数。
如果n<0,就让x取反,n取绝对值。

然后考虑怎么快速乘法。
考虑 x 7 = x 1 + 2 + 4 = x ∗ x 2 ∗ x 4 x^7=x^{1+2+4}=x*x^2*x^4 x7=x1+2+4=xx2x4,可以发现,本来乘6次x,如果x自身也在迭代取平方,则只要4次乘法。
这就好办了。

考虑n变成二进制,则就变成了1+2+4这种形式,如果有1 2 4,就乘,否则只迭代x。

class Solution:
    def myPow(self, x: float, n: int) -> float:
        if x == 0:
            return 0 
        res = 1 
        if n < 0:
            x = 1/x
            n = -n 
        while n:
            if n%2 == 1: 
            	res *=x 
            x *= x 
            n >>= 1
        return res

相关文章:

  • 火山云对比阿里云的优势在哪里
  • 【Linux操作系统——学习笔记二】Linux简单导航命令操作
  • 安徽建筑安全员A证考试的报名条件是什么?
  • spring boot 过滤器简单demo
  • Java实现字符串大写字母转小写的多种方法及优化策略
  • Web Component 教程(三):生命周期方法的触发时机与实际应用
  • 【C++】树和二叉树的实现(下)
  • 数据库:一文掌握 MongoDB 的各种指令(MongoDB指令备忘)
  • uniapp常用组件
  • 在 Vue.js 中使用递归组件:轻松处理嵌套数据结构
  • Python 爬虫(2)Web请求
  • 第六章-PHP错误处理
  • Hexo博客部署免费Twikoo评论系统新手教程
  • SAP的WPS导出找不到路径怎么办;上载报错怎么办
  • JavaScript 日期区间计算:全面解析与实战应用
  • 埃森哲XX行业信息化整体规划方案P117(117页PPT)(文末有下载方式)
  • k8s学习记录(三):Pod基础-Node选择
  • 联想扬天M590台式机开机卡LOGO不引导故障维修案例分享
  • RabbitMQ 入门
  • 本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能、过滤推理思考过程)
  • 第三届“老山国际春茶节”活动在云南麻栗坡举办
  • 华泰柏瑞基金总经理韩勇因工作调整卸任,董事长贾波代为履职
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业
  • 全国首例在沪完成,这项近视治疗手术不到10秒
  • 动物只有在被认为对人类有用时,它们的建筑才会被特别设计
  • 又一日军“慰安妇”制度受害者去世,大陆在世幸存者仅7人