leetcode第50题

简介: 求幂次方,用最简单的想法,就是写一个 for 循环累乘。至于求负幂次方,比如 2^{-10}2−10,可以先求出 2^{10}210,然后取倒数,1/2^{10}1/210 ,就可以了double mul = 1;if (n > 0) { for (int i = 0; i < n; i++) { mul *= x; }} else { n = -n; for (int i = 0; i < n; i++) { mul *= x; } mul = 1 / mul;}

image.png

就是求幂次方。

解法一

求幂次方,用最简单的想法,就是写一个 for 循环累乘。

至于求负幂次方,比如 2^{-10}210,可以先求出 2^{10}210,然后取倒数,1/2^{10}1/210 ,就可以了

doublemul=1;
if (n>0) {
for (inti=0; i<n; i++) {
mul*=x;
    }
} else {
n=-n;
for (inti=0; i<n; i++) {
mul*=x;
    }
mul=1/mul;
}

但这样的话会出问题,之前在29题讨论过,问题出在 n = - n 上,因为最小负数 -2^{31}231取相反数的话,按照计算机的规则,依旧是-2^{31}231,所以这种情况需要单独讨论一下。

if (n==-2147483648) {
return0;
}

当然,这样做的话 -1 ,和 1 也需要单独讨论下,因为他们的任意次方都是 1 或者 -1

if (x==-1) {
if ((n&1) !=0) { //按位与不等于 0 ,说明是奇数return-1;
    } else {
return1;
    }
}
if (x==1.0)
return1;

代码出来了

publicdoublemyPow(doublex, intn) {
if (x==-1) {
if ((n&1) !=0) {
return-1;
        } else {
return1;
        }
    }
if (x==1.0)
return1;
if (n==-2147483648) {
return0;
    }
doublemul=1;
if (n>0) {
for (inti=0; i<n; i++) {
mul*=x;
        }
    } else {
n=-n;
for (inti=0; i<n; i++) {
mul*=x;
        }
mul=1/mul;
    }
returnmul;
}

时间复杂度:O(n)。

从一般的方法,到递归,最后的解法,直接从 2 进制考虑,每一个数字,都可以转换成 2 的幂次的和,从而实现了最终的解法。

空间复杂度:O(1)。


相关文章
|
10月前
|
人工智能 数据可视化 数据中心
2025 FinOps 状况报告解读
要任务,取代了工作负载优化。企业对 FinOps 的需求从单纯的技术优化转向更广泛的 IT 成本管理,强调自动化和工具投资。此外,FinOps 正与 ITFM、ITAM 和 TBM 深度融合,但 ESG 整合进展缓慢。AI 投资方面,金融行业更倾向于私有云和数据中心,而大多数企业则优先选择公有云。总体而言,FinOps 已成为企业 IT 成本管理的核心,未来将更加注重成本透明化和业务价值量化。
347 12
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
323 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
Java
Java SpringBoot 7z 压缩、解压
Java SpringBoot 7z 压缩、解压
277 1
数组方法中的`forEach()`方法和`map()`方法有什么区别?
数组方法中的`forEach()`方法和`map()`方法有什么区别?
|
Cloud Native 安全 Devops
核心系统转型问题之数字化韧性的定义如何解决
核心系统转型问题之数字化韧性的定义如何解决
|
运维 算法 测试技术
通用研发提效问题之实现研发提效,如何解决
通用研发提效问题之实现研发提效,如何解决
|
Linux API 开发工具
使用Pygame库进行2D游戏开发的优缺点有哪些?
【6月更文挑战第10天】使用Pygame库进行2D游戏开发的优缺点有哪些?
371 1
|
机器学习/深度学习 并行计算 算法
Transformer 一起动手编码学原理
学习Transformer,快来跟着作者动手写一个。
94530 9
|
运维 容灾 安全
解决方案架构师郭援非:OceanBase助力金融ECIF“大机下移”分布式
随着“以客户为中心”逐渐成为金融业的战略重心,整合企业各系统分散客户信息的ECIF(Enterprise Customer Information Facility,企业级客户整合系统)应运而生。 ECIF 通过整合企业现有业务系统中的所有客户信息,实时保留客户的最新信息,为各应用系统以联机交易的方式提供实时的、完整的、共享的、一致的客户信息,建立起企业级的客户信息识别系统,在全企业范围内为客户信息的使用和管理提供服务,已成为金融业“以客户为中心”的战略性基础系统。
814 0
解决方案架构师郭援非:OceanBase助力金融ECIF“大机下移”分布式