zoukankan      html  css  js  c++  java
  • 【剑指offer】16.数值的整数次方

    16.数值的整数次方

    面试题

    难度中等14

    实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

    示例 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

    1.暴力

    如果n<0 x= 1/x n = -n 遍历求解 result = result * x;

    time:O(n)

    space:O(1)

    public double myPow(double x, int n) {
            if(n<0){//如果负数 1/x  n = -n
                x = 1/x;
                n = -n;
            }
    ​
            double result = 1.0f;
            for(int i = 0;i<n;i++){
                result = result *x;
            }
            return result;
        }

    2.快速幂算法

    time : O(logn)

    space:O(logn)

    public double myPow(double x, int n) {
            if(n<0){//如果负数 1/x  n = -n
                x = 1/x;
                n = -n;
            }
    ​
            return quickPow(x,n);
        }
    ​
        public double quickPow(double x,int n){
            if(n == 0){
                return 1.0f;
            }
    ​
            double half = quickPow(x,n/2);
    ​
            if((n & 1) == 0){
                return  half * half;
            }else{
                return  half * half * x;
            }
        }

    3.快速幂算法-循环版

    time : O(logN)

    space:O(1)

    public double myPow(double x, int n) {
            if(n == 0){
                return 1;
            }
    ​
            if(n < 0){
                x = 1/x;
                n = -n;
            }
    ​
            double result = 1;
    ​
            for(int i = n;i>=0;i/=2){
                if((i & 1) == 1){
                    result *= x;
                }
                x *= x;
            }
    ​
            return result;
        }
    
  • 相关阅读:
    Java绘出pdf实现方法
    Java设置字体颜色
    猜测分箱算法
    获取图片存储到本地
    input(file)异步上传文件
    物流轨迹抓取
    bootstrap 模态框
    从数组中随机选择一个数
    spring cron表达式
    mabtis批量修改
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860661.html
Copyright © 2011-2022 走看看