變態青蛙跳

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

題目描述

一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

?

相比普通青蛙跳,這個 n級的就有點難了,重點是 能跳n級,? 也就是說,只有當臺階數是1的時候,是1種跳法。

別說2階是兩種。。。

3階 還 4種, 4 階還 8種。 。。?。明顯抬杠。。。。。。。窮舉法做的吧?

因此只有將臺階 無限的化少,化少,直至 1階,這樣才能找到問題的解決辦法。

?

那就要倒著想,如果多了一階臺階,方法是多了多少呢?

因為我只知道 如果多 了一階,別 之前的 跳法多了多少,不就能求出了當前臺階的跳法了嗎。

?

數學思路:

當前臺階數的跳法,其實是 臺階數的所有 子集 臺階數的跳法(每個子集臺階,然后在直接一下跳到最后一階)。

例如 5階跳法,其實就是1階的所有跳法+2階的所有跳法+3階的所有跳法+4階的所有跳法+1(直接跳5階)。?

累加的話就需要寫一個 ?循環,將 n階 一下一下減,直到1 ,然后將所有臺階跳法 求和,實現起來也不是很難,再寫一個靜態 sum 就好, 記錄 總和

不過這樣就會 循環 調用遞歸, 遞歸本身,再次循環,勢必數據一多,就是 掛掉。

?

其他想法:

展現我靈魂畫手的實力:

212842_hhOP_3192601.png

假設當前有 n(示意為4) 階,跳法有x種。??

然后 加了 一階 變為 n+1?

當臺階是加在4層上面的時候:

青蛙使用? 了 x種方法? 每種方法都能跳到? n階上, 然后使用跳1 下的方法,跳上n+1階。?

213900_wI7v_3192601.png

?

當臺階是加在1層下面,也就是讓青蛙下一個臺階,總臺階還是 n+1 往上跳。 那么 開始跳1 ,然后剩余的 n階 還是 x種跳法。

214953_aar8_3192601.png

至于臺階加在其他處,不過是將n階? “擠” 成了第5階,實質還是加了最后1階。

一次 n階方法的跳法 就是 2*(n-1) 階的跳法。

?

?

代碼:

public static int JumpFloorII(int target) {if(target==0){return 0;}if(target==1){return 1;}return JumpFloorII(--target)*2;}

?

錯誤的想法:

在我想如何組織語言,讓你們接受? 臺階加在 最頂層,還是最下層的時候,我差生了一個錯誤的想法,?

既然是 第一步跳1, 那么 我其實可以將 這多的1步,放在任何位置啊。

其實這是錯誤的想法, 這里面有嚴重的跳法重疊 。

比如說我 跳5階前 加了一步, 跳到了 第6階上。然后直接 跳最后一階。

跟?

跳6階的 跳法? 中,然后直接跳到最后一階 是重復的 跳法。

?

第一種是 5階跳法 中間多跳1階,然后跳最后。

第二種是原本的6階跳法,直接跳 最后。

因此,這種思維是錯誤的。

我的想法:

感覺這個題目形容起來不是很清晰,看的話估計也不是很明白,這個題目給我的感覺就是,多一階臺階后,其實中間臺階怎么跳法不介意,第一步只能多在 n-1階跳法的 最前面,跟最后面, 也就是 2*(n-1)階跳法。

無論怎么加在中間,肯定是 有重復的跳法。

?

?

轉載于:https://my.oschina.net/u/3192601/blog/1558363

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393515.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中間的數(若已經排好序)

描述&#xff1a; 奇數個&#xff0c;輸出中間那個 偶數個&#xff0c;輸出中間那倆 代碼&#xff1a; #include<iostream>using namespace std;int main(){ int *a; int n; cin>>n; anew int[n]; for(int i0; i<n; i) cin>>a[i]; …

leetcode1237. 找出給定方程的正整數解(二分法)

給出一個函數 f(x, y) 和一個目標結果 z&#xff0c;請你計算方程 f(x,y) z 所有可能的正整數 數對 x 和 y。 給定函數是嚴格單調的&#xff0c;也就是說&#xff1a; f(x, y) < f(x 1, y) f(x, y) < f(x, y 1) 函數接口定義如下&#xff1a; interface CustomFunc…

數據庫 測試數據生成_我們的測試數據生成器如何使假數據看起來真實

數據庫 測試數據生成by Tom Winter湯姆溫特(Tom Winter) 我們的測試數據生成器如何使假數據看起來真實 (How our test data generator makes fake data look real) We recently released DataFairy, a free tool that generates test data. But first, let me tell you the st…

tp框架生命周期

1、入口文件 用戶發起的請求都會經過應用的入口文件&#xff0c;通常是 public/index.php文件。當然&#xff0c;你也可以更改或者增加新的入口文件。 通常入口文件的代碼都比較簡單&#xff0c;一個普通的入口文件代碼如下&#xff1a; // 應用入口文件 // 定義項目路徑 d…

django 創建mysql失敗_創建表時出現Django MySQL錯誤

我正在用MySQL數據庫構建一個django應用程序。當我第一次運行“python manage.py migrate”時&#xff0c;一些表創建得很好&#xff0c;然后出現一些錯誤。出現的錯誤是&#xff1a;django.db.utils.IntegrityError: (1215, Cannot add foreign keyconstraint)當我運行這個MyS…

Laravel數據庫遷移和填充(支持中文)

寫在前面 經常我們做項目都團隊協作開發&#xff0c;每個人都在自己本地的數據庫&#xff0c;如果你曾經出現過讓同事手動在數據庫結構中添加字段的情況&#xff0c;數據庫遷移可以解決你這個問題。 不僅如此&#xff0c;在線上部署的時候&#xff0c;也避免了手動導入數據庫或…

leetcode374. 猜數字大小(二分法)

猜數字游戲的規則如下&#xff1a; 每輪游戲&#xff0c;系統都會從 1 到 n 隨機選擇一個數字。 請你猜選出的是哪個數字。 如果你猜錯了&#xff0c;系統會告訴你這個數字比系統選出的數字是大了還是小了。 你可以通過調用一個預先定義好的接口 guess(int num) 來獲取猜測結果…

什么情況下你的工作最為成功_如何在沒有工作經驗的情況下獲得技術工作

什么情況下你的工作最為成功by Anthony Sistilli安東尼西斯蒂里(Anthony Sistilli) 如何在沒有工作經驗的情況下獲得技術工作 (How to get a tech job with no previous work experience) I run a free community called the Forge where I help students navigate the world …

jquery批量刪除

前臺代碼 <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0">…

MUI 里js動態添加數字輸入框后,增加、減少按鈕無效

https://www.cnblogs.com/ssjf/p/10193652.html numbox 的自動初化是在 mui.ready 時完成的mui 頁面默認會自動初始化頁面中的所有數字輸入框&#xff0c;動態構造的 DOM 需要進行手動初始化。比如&#xff1a;您動態創建了一個 ID 為 abc 的數字輸入框&#xff0c;需要 mui(#a…

Django——認證系統(Day72)

閱讀目錄 COOKIE 與 SESSION 用戶認證 COOKIE 與 SESSION 概念 cookie不屬于http協議范圍&#xff0c;由于http協議無法保持狀態&#xff0c;但實際情況&#xff0c;我們卻又需要“保持狀態”&#xff0c;因此cookie就是在這樣一個場景下誕生。 cookie的工作原理是&#xff1a;…

description方法

1.description基本概念 NSLog("%", objectA);這會自動調用objectA的description方法來輸出ObjectA的描述信息. description方法默認返回對象的描述信息(默認實現是返回類名和對象的內存地址) description方法是基類NSObject 所帶的方法,因為其默認實現是返回類名和…

leetcode面試題 10.05. 稀疏數組搜索(二分法)

稀疏數組搜索。有個排好序的字符串數組&#xff0c;其中散布著一些空字符串&#xff0c;編寫一種方法&#xff0c;找出給定字符串的位置。 示例1: 輸入: words [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”,“dad”, “”, “”], s “ta” 輸出…

laravel框架制作縮略圖和水印

1.首先需要使用 composer 在命令行安裝最新版本的 intervention/image &#xff1a; composer require intervention/image2.注冊服務提供者及別名&#xff08;Laravel 版本 ≤ 5.4&#xff09; 如果你的 laravel 版本小于或等于 5.4&#xff0c;安裝后需要注冊服務提供者和別…

mysql 模糊查詢 tp框架_TP框架中模糊查詢實現

TP框架中模糊查詢實現$where[g.name] array(like,%.$groupname.%);表達式查詢上面的查詢條件僅僅是一個簡單的相等判斷&#xff0c;可以使用查詢表達式支持更多的SQL查詢語法&#xff0c;查詢表達式的使用格式&#xff1a;$map[字段1] array(表達式,查詢條件1);$map[字段2] ar…

肉體之愛的解釋圣經_可以解釋的AI簡介,以及我們為什么需要它

肉體之愛的解釋圣經by Patrick Ferris帕特里克費里斯(Patrick Ferris) 可以解釋的AI簡介&#xff0c;以及我們為什么需要它 (An introduction to explainable AI, and why we need it) Neural networks (and all of their subtypes) are increasingly being used to build pro…

Python可變與不可變類型及垃圾回收機制

1. 可變與不可變類型 1.1 可變類型 在id不變的情況下&#xff0c;value可以改變&#xff0c;則稱之為可變類型。列表、字典與集合是可變的。 l1 [1,2,3,4,5] print(id(l1)) l1[1] 520 #改變列表元素 print(id(l1)) result&#xff1a; 1700748379208 …

12-1 12 防盜鏈 訪問控制 php解析 代理

2019獨角獸企業重金招聘Python工程師標準>>> 12.13 Nginx防盜鏈 12.14 Nginx訪問控制 12.15 Nginx解析php相關配置 12.16 Nginx代理 擴展 502問題匯總 http://ask.apelearn.com/question/9109location優先級 http://blog.lishiming.net/?p10012.13 Nginx防盜鏈 用來…

leetcode911. 在線選舉(二分法)

在選舉中&#xff0c;第 i 張票是在時間為 times[i] 時投給 persons[i] 的。 現在&#xff0c;我們想要實現下面的查詢函數&#xff1a; TopVotedCandidate.q(int t) 將返回在 t 時刻主導選舉的候選人的編號。 在 t 時刻投出的選票也將被計入我們的查詢之中。在平局的情況下&…

1-13句子逆序

題目描述 將一個英文語句以單詞為單位逆序排放。例如“I am a boy”&#xff0c;逆序排放后為“boy a am I”所有單詞之間用一個空格隔開&#xff0c;語句中除了英文字母外&#xff0c;不再包含其他字符 接口說明 /** * 反轉句子 * * param sentence 原句子 * return 反轉后的…