【剑指Offer】数值的整数次方 解题报告(Python)
【剑指Offer】数值的整数次方 解题报告(Python)
标签(空格分隔): LeetCode
题目地址:https://www.nowcoder.com/ta/coding-interviews
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
Ways
方法一:
使用循环去做。
题目中已经明确了exponent是整数。这里要考虑的是整数可能是0或者负数。
当其是正数的情况很简单,直接循环就能搞定。
当其为负数的时候,可以先求出其绝对值的结果,再取倒数。
当其为0的时候,直接返回0即可。
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
if exponent < 1:
return 1 / self.getPower(base, -exponent)
else:
return self.getPower(base, exponent)
def getPower(self, base, exponent):
if base == 0:
return 0
elif exponent == 1:
return base
res = 1
for i in range(exponent):
res *= base
return res
方法二:
对求正数次方的解法可以做一个优化:
这样就类似于一个求费布拉奇数列的解法,使用递归能比较快速的求出整数次方。
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exp):
if exp < 1:
return 1 / self.getPower(base, -exp)
else:
return self.getPower(base, exp)
def getPower(self, base, exp):
if exp == 0:
return 1
elif exp == 1:
return base
res = self.Power(base, exp >> 1)
res *= res
if exp & 1 == 1:
res *= base
return res
Date
2018 年 3 月 11 日
【剑指Offer】数值的整数次方 解题报告(Python)的更多相关文章
- 剑指Offer 数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路: 要考虑边界,0,负数 AC代码: class Solution ...
- 剑指Offer——数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 分析: 快速幂,简单解释下, 当e的二进制为1001011, b^e=b^( ...
- 用js刷剑指offer(数值的整数次方)
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 牛客网链接 思路 快速幂算法,举个例 ...
- 【剑指Offer】05. 替换空格 解题报告 (Python & C++ & Java)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人微信公众号:负雪明烛 目录 题目描述 解题方法 方法一:新建可变长度的容器 方法二:原 ...
- 【剑指Offer】字符串的排列 解题报告(Python)
[剑指Offer]字符串的排列 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- 【剑指Offer】树的子结构 解题报告(Python)
[剑指Offer]树的子结构 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目 ...
- 【剑指Offer】二叉树的镜像 解题报告(Python)
[剑指Offer]二叉树的镜像 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- 【剑指Offer】顺时针打印矩阵 解题报告(Python)
[剑指Offer]顺时针打印矩阵 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- 【剑指Offer】构建乘积数组 解题报告(Python)
[剑指Offer]构建乘积数组 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目 ...
随机推荐
- Flink基础
一.抽象层次 Flink提供不同级别的抽象来开发流/批处理应用程序. 最低级抽象只提供有状态流.它 通过Process Function嵌入到DataStream API中.它允许用户自由处理来自 ...
- 零基础学习java------37---------mybatis的高级映射(单表查询,多表(一对一,一对多)),逆向工程,Spring(IOC,DI,创建对象,AOP)
一. mybatis的高级映射 1 单表,字段不一致 resultType输出映射: 要求查询的字段名(数据库中表格的字段)和对应的java类型的属性名一致,数据可以完成封装映射 如果字段和jav ...
- Js数组内对象去重
let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李& ...
- Identity Server 4 从入门到落地(八)—— .Net Framework 客户端
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- java标识接口
标识接口是没有任何方法和属性的接口,标识接口不对实现类有任何语义上的要求,仅仅表明它的实现类属于一个特定的类型.它非常类似于Web 2.0中的TAG的概念,Java使用它标识某一类对象.主要有两个用途 ...
- react-native环境搭建完后,用genymotion运行出错的处理方法
以下方法是争对react-native 0.63版本的 出错提示如下: 模拟器点击reload后,如下提示: 找了网上很多方法,很多都是旧版本的bug处理的方法,没有用,后面经过摸索发现,原来原因是 ...
- cookie,sessionStorage,loclaStorage,HTML5应用程序缓存
cookie Cookie 是一些数据,由服务器生成,发送给浏览器,一旦用户从该网站或服务器退出,Cookie 就存储在用户本地的硬盘上,下一次请求同一网站时会把该cookie发送给服务器.Cooki ...
- 注册页面的servlet
package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.ResultInfo;import cn.itcast.trav ...
- IDE常用插件
IDE 常用插件集合 :
- Python模块和函数
目录 一.基础 二.特殊函数 一.基础 #导入模块 import xxx #调用 xxx.dd() from xxx import xx as dd #导入某个函数,as给函数加别名,调用xx() ...