編程 跳臺階_Java版劍指offer編程題第8題--跳臺階

跟learnjiawa一起每天一道算法編程題,既可以增強對常用API的熟悉能力,也能增強自己的編程能力和解決問題的能力。算法和數據結構,是基礎中的基礎,更是筆試的重中之重。

  • 不積硅步,無以至千里;
  • 不積小流,無以成江海。

題目描述

一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算不同的結果)。

我的想法

  1. 題目給定兩種跳法,1階或者2階,將n級臺階的跳法總數記為f(n)
  2. 那么假定第一次跳的是一階,那么剩下的是n-1個臺階,跳法是f(n-1);
  3. 假定第一次跳的是2階,那么剩下的是n-2個臺階,跳法是f(n-2)
  4. 所以n級臺階的總跳法為: f(n) = f(n-1) + f(n-2)
  5. 只有一階的時候 f(1) = 1 ,只有兩階的時候可以有 f(2) = 2
  6. 可以發現最終得出的是一個首項為1的斐波那契數列:1 2 3 5 8 …..
  7. 轉換為了上一題,所以解題辦法完全相同,也存在遞歸或用空間換時間的兩種方法

解題方法1

c94d35f78fb5530afa9946cbea6984cb.png

解題方法2

7d5373579a69e6344301cdcf8ee56ecf.png

代碼測試

3e9ce34fa56814dc2c60a2528b94a2ae.png

測試代碼控制臺輸出:

38c22b7bcb3c06891f89873c59d8701b.png

總結

題目主要考察遞歸和循環的相關知識點,先實現,再優化,迅速解題。

參考文獻

[1]程杰. 大話數據結構. 北京:清華大學出版社, 2011.

更多

對我的文章感興趣,點個關注是對我最大的支持,持續更新中……
關注微信公眾號LearnJava,發現更多精彩。

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

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

相關文章

獲取漢字的首字母(轉)

轉換 獲取一個漢字的拼音首字母。 GB碼兩個字節分別減去160,轉換成10進制碼組合就可以得到區位碼例如漢字“你”的GB碼是0xC4/0xE3,分別減去0xA0&#xf…

$ionicPopup

轉自:http://www.ionicframework.com/docs/api/service/%24ionicPopup/ Usage A few basic examples, see below for details about all of the options available. angular.module(mySuperApp, [ionic]) .controller(PopupCtrl,function($scope, $ionicPopup, $tim…

目標規劃運籌學例題doc_運籌學之目標規劃(胡運權版).doc

運籌學之目標規劃(胡運權版).doc第七章 目標規劃1 目標規劃的提出線性規劃問題是討論一個給定的線性目標函數在一組線性約束條件下的最大值或最小值問題。對于一個實際問題,管理科學者根據管理層決策目標的要求,首先確定一個目標函數以衡量不同決策的優劣…

Deep Learning(深度學習) 學習筆記(四)

神經概率語言模型,內容分為三塊:問題,模型與準則,實驗結果。[此節內容未完待續...] 1,語言模型問題 語言模型問題就是給定一個語言詞典包括v個單詞,對一個字串做出二元推斷,推斷其是否符合該語言…

Java Virtual Machine

后續完善轉載于:https://www.cnblogs.com/fight-tao/p/4849167.html

selenium 鼠標懸浮_處理Selenium3+python3定位鼠標懸停才顯示的元素

先給大家介紹下Selenium3python3--如何定位鼠標懸停才顯示的元素定位鼠標懸停才顯示的元素,要引入新模塊# coding:utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsdriver webdriver.Firefox()driver.get(&q…

JavaScript 運行機制

JavaScript 運行機制 閱讀目錄 一、為什么JavaScript是單線程?二、任務隊列三、事件和回調函數四、Event Loop五、定時器六、Node.js的Event Loop七、關于setTimeout的測試一、為什么JavaScript是單線程? JavaScript語言是單線程,也就是說&am…

mysql 時間 本周 本月_mysql查詢當天、本周、上周、本月、上月信息

今天select * from 表名 where to_days(時間字段名) to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 時間字段名) < 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(時間字段名)近30天SELECT * FROM 表名 wher…

android自定義倒計時控件示例

這篇文章主要介紹了Android秒殺倒計時自定義TextView示例&#xff0c;大家參考使用吧 自定義TextView控件TimeTextView代碼&#xff1a; 復制代碼 代碼如下:import android.content.Context;import android.content.res.TypedArray;import android.graphics.Paint;import andro…

Spring Cloud構建微服務架構:服務消費(Ribbon)【Dalston版】

通過上一篇《Spring Cloud構建微服務架構&#xff1a;服務消費&#xff08;基礎&#xff09;》&#xff0c;我們已經學會如何通過LoadBalancerClient接口來獲取某個服務的具體實例&#xff0c;并根據實例信息來發起服務接口消費請求。但是這樣的做法需要我們手工的去編寫服務選…

檢測是否點擊到精靈

需要給每個精靈設置tag.可以用枚舉 bool GE::GamePass::ccTouchBegan( cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent ) { const int iButtonCount 2; const int iButtonTags[iButtonCount] { GamePass_btn_share, GamePass_btn_return }; for(int i 0; i < iButt…

從gitlab上拉代碼_從gitlab上拉取代碼并一鍵部署

一、gitlab安裝GitLab是一個利用Ruby on Rails開發的開源應用程序&#xff0c;實現一個自托管的Git項目倉庫&#xff0c;可通過Web界面進行訪問公開的或者私人項目。GitLab擁有與Github類似的功能&#xff0c;能夠瀏覽源代碼&#xff0c;管理缺陷和注釋。可以管理團隊對倉庫的訪…

LPWA技術:發展物聯網的最佳選擇

物聯網時代的物物相連將會使百億以上物體連入網絡&#xff0c;這對傳統上的兩種通信技術&#xff0c;即近距離無線接入和移動蜂窩網提出了更高的要求。事實上&#xff0c;目前&#xff0c;用于物聯網發展的通信技術正在全球范圍內開發&#xff0c;低功耗廣域網通信技術(Low Pow…

上傳文件大小限制,webconfig和IIS配置大文件上傳

IIS6下上傳大文件沒有問題&#xff0c;但是遷移到IIS7下面&#xff0c;上傳大文件時&#xff0c;出現HTTP 404錯誤。 IIS配置上傳大小&#xff0c;webconfig <!-- 配置允許上傳大小 --><httpRuntime maxRequestLength"1997151" useFullyQualifiedRedirectU…

產品管理流程

轉載于:https://www.cnblogs.com/candle806/p/4860841.html

如何根據灰度直方圖計算標準差_如何根據電器功率計算電線的粗細?

一般來說&#xff0c;測算電線的粗細&#xff0c;需要根據功率計算電流&#xff0c;根據電流選擇導線截面&#xff0c;根據導線的截面&#xff0c;導線或電纜的型號查廠家的該型號的導線電纜的直徑。這里就涉及了&#xff1a;電線粗細與功率之間的關系計算&#xff1b;導線截面…

解惑煙草行業工控系統如何風險評估

上周五下午&#xff0c;威努特工控安全聯合創始人 趙宇 先生&#xff0c;帶來了一場關于“工控系統的風險評估”的技術講座。此次近200注冊報名的朋友&#xff0c;來自各大高校、國企、外企、測評中心、安全廠商、大型集成商以及大型IT科技企業、安全實驗室等。 煙草企業調研參…

ORACLE union order by

select * from ( select a.id,a.oacode,a.custid,a.custname,a.xsz,a.salename,a.communicationtheme,a.communicationproperty,a.communicationtime,a.productmanager,a.creator,a.createdate from technology_flow a where a.oastate正常結束 union select b.id,b.oacode,b…

UVa 11806 Cheerleaders

題意&#xff1a;m行n列的矩形網格放k個相同的石子&#xff0c;要求第一行最后一行第一列最后一列都必須有石子&#xff0c;問有多少種放法 A為第一行沒有石子的方案數&#xff0c;BCD依此類推&#xff0c;全集為S 如果沒有任何要求的話&#xff0c;放法數應該是C(rc, k) 解法中…

為什么說一站式移動辦公SaaS平臺一定是未來!

摘要&#xff1a;移動辦公SaaS之間的核心競爭不在于比拼技術&#xff0c;而在于誰更好地與企業管理和文化相互融合&#xff0c;給企業帶來更加年輕、更加高效的工作方式&#xff0c;實現了企業組織的互聯網化。 沒有哪個企業愿意當諾基亞&#xff0c;“并沒有做錯什么&#xff…