剑指offer—16.数值的整数次方——分析及代码(Java)

2023-10-30

剑指offer——16.数值的整数次方——分析及代码[Java]

一、题目

给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent。求 base 的 exponent 次方。
保证 base 和 exponent 不同时为 0。

二、分析及代码

1. 二分求解

(1)思路

本题首先需综合考虑各类情况:
1)base == 0,返回 0;
2)exponent == 0,返回 1;
3)exponent < 0,先求解 -exponent 次方,再取倒数;
4)exponent > 0,直接求解。

在直接求解数的 exponent 次方的过程中,可通过二分方法减小计算循环次数:
1)若 exponent 为偶数,结果为 exponent>>1 次方 的平方;
2)若 exponent 为奇数,结果为 exponent>>1 次方 的平方再乘 base。
可通过位运算提高计算效率。

(2)代码

public class Solution {
    public double Power(double base, int exponent) {
        if (base == 0)
            return 0;
        if (exponent >= 0)
            return PowerAbsExponent(base, exponent);
        return (1.0 / PowerAbsExponent(base, -exponent));
    }
    
    public double PowerAbsExponent(double base, int exponent) {
        if (exponent == 0)
            return 1;
        double res = PowerAbsExponent(base, exponent >> 1);
        res *= res;
        if ((exponent & 1) == 1)//判断奇偶
            res *= base;
        return res;
    }
}

(3)结果

运行时间:48ms,占用内存:10356k。

三、其他

暂无。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

剑指offer—16.数值的整数次方——分析及代码(Java) 的相关文章

随机推荐

  • 数字信号谱估计方法对比仿真——估计自相关,周期图法,协方差法,burg算法,修正协方差法

    目录 一 理论基础 1 1自相关谱估计 1 2周期图法谱估计 1 3协方差法谱估计 1 4burg算法谱估计 1 5修正协方差谱估计 二 核心程序 三 仿真结论 一 理论基础 自相关谱估计 周期图法谱估计 协方差法谱估计 Burg算法谱估计
  • 如何在两天之内写出一篇学术论文:Pete Carr 教授的高效写作秘籍

    文章目录 一 前言 二 主要内容 三 总结 CSDN 叶庭云 https yetingyun blog csdn net 一 前言 随着科研的不断发展 研究论文已成为每位学者不可或缺的 利器 然而 撰写一篇既有深度又有广度的研究论文却是一项
  • leetcode99-恢复二叉搜索树(两个空间复杂度的解法)

    恢复二叉搜索树 题目 给你二叉搜索树的根节点 root 该树中的 恰好 两个节点的值被错误地交换 请在不改变其结构的情况下 恢复这棵树 示例 思路 嘶 递归递了加一起得两个点 笔试的题是 交换了若干个相邻结点的 恢复成一颗二叉搜索树 估计就
  • 图像处理大作业(用霍夫变换检测硬币及统计硬币个数,并设计GUI界面)

    实现所给硬币图像中的硬币检测及计数 要求完成功能 自行查找 阅读有关的采用Hough变换来检测图像中圆的资料 设计实现所给图像中圆形的检测 要求检测出图像中硬币个数以及各个硬币的直径 本题难度系数 GUI界面设计参考 MATLAB学习笔记
  • obsidian图片链接转换成markdown语法,不关闭wiki链接

    问题 近期尝试使用了obsidian作为我的笔记软件 但是发现obsidian的图片链接会自动使用wiki链接的方式保存 比如这样的格式 图片路径 但是这样的路径 一般的markdown编辑器是识别不了的 这一点我比较不喜欢 因为我想在使用
  • web下载七牛云上面的图片资源

    本文将怎么通过浏览器打包下载七牛云服务器上面的图片资源 如果不用压缩打包处理 可以直接获取流后用对应的out输出就行 不做具体解析 1 先讲怎么打包下载吧 ZipOutputStream我用的是这个工具类 创建 ZipOutputStrea
  • RL-RTX小读之os_sem_wait

    rtl h中定义了 define os sem wait sem tmo os sem wait U32 rt sem wait sem tmo rt sem wait的实现如下 OS RESULT rt sem wait OS ID se
  • for循环遍历列表的注意事项

    一图流
  • 环形链表

    LeetCode 环型链表 给定一个链表 返回链表开始入环的第一个节点 如果链表无环 则返回 null 为了表示给定链表中的环 我们使用整数 pos 来表示链表尾连接到链表中的位置 索引从 0 开始 如果 pos 是 1 则在该链表中没有环
  • 用 JavaScript,五分钟将 Siri 接入 ChatGPT(搬运)

    Siri ChatGPT 使用教程 将 Siri 接入 ChatGPT 直接语音唤醒 并且支持连续对话 第一步 拷贝项目 通过 AirCode 源码链接中右上角的 Get a copy 按钮快速生成一个自己的 AirCode Node js
  • 大数据技术原理与应用---笔记一:大数据概论

    大数据概论 1 大数据概念 1 1 4v说法 1 2 大数据的影响 对科学研究的影响 对思维方式影响 2 大数据相关技术 2 1大数据基本处理流程 3 大数据计算模式 大数据产业 参考书籍 1 大数据概念 1 1 4v说法 1 数据量大 v
  • 【华为上机真题】事件推送

    作者 Linux猿 简介 CSDN博客专家 华为云享专家 Linux C C 云计算 物联网 面试 刷题 算法尽管咨询我 关注我 有问题私聊 关注专栏 数据结构和算法成神路 精讲 优质好文持续更新中 欢迎小伙伴们点赞 收藏 留言 目录 一
  • 填速度环的大坑以及转向环的疑问还有对PID的魔性认识

    原文 https blog csdn net weixin 30836759 article details 94931014 前几天填补了速度环的大坑 之前速度环是每次获取编码器的返回值来对输出的PWM波进行赋值 发现车总是有气无力 更换
  • Spring Security+Spring Boot 无法访问静态资源 401-跨域问题解决

    401告诉我没有权限 一开始我还以为时静态资源没有开放 package cn hcnet2006 blog hcnetwebsite config import org springframework context annotation
  • java dispose - public void dispose()

    dispose public void dispose 释放由此 Window 其子组件及其拥有的所有子组件所使用的所有本机屏幕资源 即这些 Component 的资源将被破坏 它们使用的所有内存都将返回到操作系统 并将它们标记为不可显示
  • vue项目中如何定义 多个全局自定义指令

    在项目中如果自定义指令太多 不方便在main js中写 那么如何能够全部写在一个文件然后在main js中引入 首先创建一个js文件 用于专门书写指令 directives index js export const imagerror i
  • signed和unsigned区别

    signed和unsigned用于修饰整数类型 包括char 从ANSI C89标准开始支持 signed表示有符号 unsigned表示无符号 有符号数的最大取值要比无符号的小约一半 因为有符号数的最高一位被用来表示符号 默认的int s
  • 剑指offer 专项突破版 119、最长连续序列

    题目链接 思路 同样的可以转化为并查集来做 可以把相邻的数字放到一个子集中 每当搜索到一个数字时就判断和他相邻的数字是否在集合中 如果在就合并 为了方便记录每个集合的大小 可以用一个count集合记录每个子集的大小 在合并集合的时候也要更新
  • vue开发环境准备-  配置npm私服地址

    1 通过config命令 npm config set registry https ip repository npm group 2 命令行方式 npm registry https ip repository npm group in
  • 剑指offer—16.数值的整数次方——分析及代码(Java)

    剑指offer 16 数值的整数次方 分析及代码 Java 一 题目 二 分析及代码 1 二分求解 1 思路 2 代码 3 结果 三 其他 一 题目 给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent