当前位置: 首页 > 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
http://www.dtcms.com/a/76301.html

相关文章:

  • 火山云对比阿里云的优势在哪里
  • 【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升级最新版本、新增插件功能、过滤推理思考过程)
  • vue3:九、路由守卫
  • Hive Presto SQL 查询优化指南
  • 飞腾2000+/64核加固服务器
  • 【c++】c++语言中““符号的用途介绍
  • 【零基础入门unity游戏开发 —— 通用篇】层级(Layer)、层级编号、层级二进制掩码和unity层级检测原理
  • 【蓝桥杯速成】| 6.背包问题(01版)
  • Nuxt2 vue 给特定的页面 body 设置 background 不影响其他页面
  • 知识管理流程指南
  • Python----计算机视觉处理(Opencv:形态学变换)
  • Bellman_ford 算法--带负权值的单源最短路问题,边列表存储