日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文巾解题 50. Pow(x, n)

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文巾解题 50. Pow(x, n) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 題目描述

2 解題思路(leetcode官方解法)

當指數?n?為負數時,我們可以計算? 再取倒數得到結果,因此我們只需要考慮?n?為自然數的情況。

2.1 快速冪+遞歸

由于每次遞歸都會使得指數減少一半,因此遞歸的層數為O(logn),算法可以在很快的時間內得到結果。

class Solution:def myPow(self, x: float, n: int) -> float:def calc(x,n):if(n==0):return 1.0y=calc(x,n//2)if(n%2==0):return y*yelse:return y*y*xif(n>=0): return(calc(x,n))else:return(1.0/calc(x,-n))

2.2 快速冪+迭代

class Solution:def myPow(self, x: float, n: int) -> float:def calc(x,n):ans = 1.0# 貢獻的初始值為 xx_contribute = x# 在對 N 進行二進制拆分的同時計算答案while n > 0:if n % 2 == 1:# 如果 N 二進制表示的最低位為 1,那么需要計入貢獻ans *= x_contribute# 將貢獻不斷地平方x_contribute *= x_contribute# 舍棄 N 二進制表示的最低位,這樣我們每次只要判斷最低位即可n //= 2return ansif(n>=0): return(calc(x,n))else:return(1.0/calc(x,-n))

?

總結

以上是生活随笔為你收集整理的文巾解题 50. Pow(x, n)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。