美文网首页剑指 Offer Java版
剑指Offer Java版 面试题16:数值的整数次方

剑指Offer Java版 面试题16:数值的整数次方

作者: 孙强Jimmy | 来源:发表于2019-07-13 16:02 被阅读475次

    题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

    练习地址

    https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00

    方法1

    public class Solution {
        public double Power(double base, int exponent) {
            if (base == 0) {
                return 0;
            }
            if (exponent == 0) {
                return 1;
            }
            boolean negative = exponent < 0;
            if (negative) {
                exponent = -exponent;
            }
            double result = base;
            while (--exponent > 0) {
                result *= base;
            }
            return negative ? 1 / result : result;
        }
    }
    

    复杂度分析

    • 时间复杂度:O(n)。
    • 空间复杂度:O(1)。

    方法2

    public class Solution {
        public double Power(double base, int exponent) {
            if (base == 0) {
                return 0;
            }
            if (exponent == 0) {
                return 1;
            }
            boolean negative = exponent < 0;
            if (negative) {
                exponent = -exponent;
            }
            double result = powerWithExponent(base, exponent);
            return negative ? 1 / result : result;
        }
        
        private double powerWithExponent(double base, int exponent) {
            if (exponent == 0) {
                return 1;
            }
            if (exponent == 1) {
                return base;
            }
            double result = powerWithExponent(base, exponent >> 1);
            // n为偶数时,a^n=a^(n/2)*a^(n/2);n为奇数时,a^n=a^(n/2)*a^(n/2)*a
            result *= result;
            if ((exponent & 1) == 1) {
                result *= base;
            }
            return result;
        }
    }
    

    复杂度分析

    • 时间复杂度:O(logn)。
    • 空间复杂度:O(logn)。

    👉剑指Offer Java版目录
    👉剑指Offer Java版专题

    相关文章

      网友评论

        本文标题:剑指Offer Java版 面试题16:数值的整数次方

        本文链接:https://www.haomeiwen.com/subject/iflmkctx.html