专栏首页木又AI帮打卡群刷题总结0709—— Pow(x, n)

打卡群刷题总结0709—— Pow(x, n)

题目:50. Pow(x, n)

链接:https://leetcode-cn.com/problems/powx-n

实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明: -100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

解题:

1、依次计算x^(2^0),x^(2^1),x^(2^2),...

然后对n进行分解,转换为一组2的幂的和,将对应的数相乘得到答案。

代码:

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """
        if n == 0:
            return 1

        # 取得正负符号
        negetive = False
        if n < 0:
            negetive = True
            n = -n

        # 得到下标为2^i对应的数
        times = [0, 1]
        res = [1, x]
        while 2 * times[-1] < n:
            times.append(times[-1] * 2)
            res.append(res[-1] * res[-1])

        # 累积
        result = 1
        index = len(times) - 1
        while n > 0:
            while times[index] > n:
                index -= 1
            result *= res[index]
            n -= times[index]

        if negetive:
            return 1.0 / result
        return result

PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

本文分享自微信公众号 - 木又AI帮(gh_eaa31cab4b91),作者:木又

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【leetcode刷题】T119-二叉树的层次遍历 II

    https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/

    木又AI帮
  • 【leetcode刷题】20T5-Z 字形变换

    https://leetcode-cn.com/problems/zigzag-conversion

    木又AI帮
  • 打卡群刷题总结0917——买卖股票的最佳时机

    链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock

    木又AI帮
  • QT——2.2简易四则运算计算器:练习ComboBox、MessageBox的使用

    1、ComboBox,主要针对Item操作,右键编辑项目,在其中加入要显示的内容,这里我们加入四个项目,对应的Index为0-3;

    Winter_world
  • 安卓微信6.0.2更新 自定义表情可同步字体大小能修改

      微信 6.0.2 for Android 全新发布,自定义表情可同步了,解决你换手机表情都没了的烦恼;微信字体大小也能调整了,近视老花必备良品;视频聊天窗口...

    ytkah
  • PE知识复习之PE的重定位表

        重定位的意思就是修正偏移的意思. 如一个地址位 0x401234 ,Imagebase = 0x400000 . 那么RVA就是 1234. 如果I...

    IBinary
  • leetcode438. Find All Anagrams in a String

    这是一个简单的双指针问题,即左指针指向可以作为起点的子数组下标,右指针则不停向右移动,将更多的元素囊括进来,从而确保该左右指针内的元素是目标数组的一个兄弟子数组...

    眯眯眼的猫头鹰
  • 数据仓库②-数据仓库与数据集市建模

    前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的ER建模和关系建模,还包括专门针对数据仓库的维度建模技术。 本文将详细介绍数据仓库维度建...

    Spark学习技巧
  • 5-13 多页面打包配置

    前面的配置基本上是基于 spa,不过如果细心的同学可能会发现,之前在 5-5 webapck-dev-server 解决单页应用路由问题 一文中已经用到了多页面...

    love丁酥酥
  • 用Python实现磁盘IO操作全攻略,让数据流动起来!

    导读:IO在计算机中指的是Input/Output,也就是输入输出。凡是用到数据交换的地方,都会涉及IO编程,例如磁盘、网络的数据传输。

    华章科技

扫码关注云+社区

领取腾讯云代金券