摘要:遞歸法復(fù)雜度時(shí)間空間思路通過一點(diǎn)點(diǎn)數(shù)學(xué)推導(dǎo)我們可以知道,如果是偶數(shù)如果是奇數(shù)根據(jù)這幾條原則遞歸,我們就不用將相乘次,而只要次就行了注意在遞歸函數(shù)中處理的奇偶問題,在主函數(shù)中處理的正負(fù)問題代碼為負(fù)返回倒數(shù)為正直接返回結(jié)果遞歸終止條件根據(jù)奇數(shù)
Pow(x, n)
遞歸法 復(fù)雜度Implement pow(x, n)
時(shí)間 O(logN) 空間 O(logN)
思路通過一點(diǎn)點(diǎn)數(shù)學(xué)推導(dǎo)我們可以知道,如果n是偶數(shù)
$$ x^nx^n = x^{2n}$$
如果n是奇數(shù)
$$ x^nx^nx = x^{2n+1}$$
根據(jù)這幾條原則遞歸,我們就不用將x相乘n次,而只要logN次就行了
在遞歸函數(shù)中處理n的奇偶問題,在主函數(shù)中處理n的正負(fù)問題
代碼public class Solution { public double myPow(double x, int n) { if(n < 0){ // n為負(fù)返回倒數(shù) return 1/pow(x, -n); } else { // n為正直接返回結(jié)果 return pow(x, n); } } private double pow(double x, int n){ // 遞歸終止條件 if(n == 0){ return 1.0; } if(n == 1){ return x; } double val = pow(x, n/2); // 根據(jù)奇數(shù)還是偶數(shù)返回不同的值 if(n % 2 == 0){ return val * val; } else { return val * val * x; } } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/64543.html
摘要:浮點(diǎn)數(shù)計(jì)算不光對(duì)整數(shù)運(yùn)算提供了支持,同樣對(duì)我們俗稱的小數(shù)也提供了便利的運(yùn)算。但要注意的一點(diǎn)是有些版本對(duì)于浮點(diǎn)數(shù)是位數(shù)限制的對(duì)比下面兩張圖,所以可能會(huì)出現(xiàn)溢出或者未知報(bào)錯(cuò),在真正開發(fā)的過程中,盡量不要寫這種代碼否則背鍋。 學(xué)習(xí)任何一種編程語言,包括但不限于C、C++、Java、Python,我...
摘要:邏輯運(yùn)算符假設(shè),運(yùn)算符描述實(shí)例布爾與如果為,返回,否則它返回的計(jì)算值。布爾或如果是,它返回,否則它返回的計(jì)算值。以為例,說明語句。逗號(hào)表示打印在同一行本來,在語句中,字符串后面會(huì)接一個(gè)符號(hào)。 運(yùn)算符 算術(shù)運(yùn)算符 前面已經(jīng)講過了四則運(yùn)算,其中涉及到一些運(yùn)算符:加減乘除,對(duì)應(yīng)的符號(hào)分別是:+ - * /,此外,還有求余數(shù)的:%。這些都是算術(shù)運(yùn)算符。其實(shí),算術(shù)運(yùn)算符不止這些。根據(jù)中學(xué)數(shù)...
摘要:題目要求此處為題目鏈接即用自己的代碼實(shí)現(xiàn)指數(shù)運(yùn)算。指數(shù)為負(fù)數(shù)即求其倒數(shù)。思路一二分法計(jì)算這題的思路我之前的一篇博客思路基本相同。所以在能轉(zhuǎn)換為循環(huán)的情況下還是最好使用循環(huán)來解決。 題目要求 此處為題目鏈接即用自己的代碼實(shí)現(xiàn)指數(shù)運(yùn)算。指數(shù)運(yùn)算一般有兩種情況,即指數(shù)為整數(shù)和指數(shù)為負(fù)數(shù)的情況。指數(shù)為負(fù)數(shù)即求其倒數(shù)。 思路一:二分法計(jì)算 這題的思路我之前的一篇博客思路基本相同。有興趣的可以直接...
摘要:在拖完地板之后,想想還是補(bǔ)上今天的題解吧感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸第一題難度中等實(shí)現(xiàn),即計(jì)算的次冪函數(shù)。因?yàn)槭谴蝺纾绻苯友h(huán),復(fù)雜度就是了。次冪可以拆解為的方式。每次拆解,最后最小的單位應(yīng)該為。 寫在前面 年前嘛,就是各種渙散的狀態(tài)。在拖完地板之后,想想還是補(bǔ)上今天的題解吧~感謝小佳揚(yáng)推薦的題目,默默的復(fù)習(xí)了一把遞歸~ 第一題 50. Pow(x, n)難度:中等 ...
摘要:先去空白,去掉空白之后取第一個(gè)字符,判斷正負(fù)符號(hào),若是英文直接返回,若數(shù)字則不取。回文數(shù)題目描述判斷一個(gè)整數(shù)是否是回文數(shù)。回文數(shù)是指正序從左向右和倒序從右向左讀都是一樣的整數(shù)。 JS算法題之leetcode(1~10) 前言 一直以來,前端開發(fā)的知識(shí)儲(chǔ)備在數(shù)據(jù)結(jié)構(gòu)以及算法層面是有所暫缺的,可能歸根于我們的前端開發(fā)的業(yè)務(wù)性質(zhì),但是我認(rèn)為任何的編程崗位都離不開數(shù)據(jù)結(jié)構(gòu)以及算法。因此,我作為...
閱讀 798·2021-11-15 11:37
閱讀 3414·2021-10-27 14:14
閱讀 6674·2021-09-13 10:30
閱讀 3060·2021-09-04 16:48
閱讀 2057·2021-08-18 10:22
閱讀 2219·2019-08-30 14:19
閱讀 964·2019-08-30 10:54
閱讀 1821·2019-08-29 18:40