面試程式設計題拾遺(04) 上樓梯有多少種方式

2021-06-19 14:48:39 字數 564 閱讀 9165

很自然的想法是使用遞迴:

public class test04 

else if(n == 0)

else }

public static void main(string args)

}

然而,這裡的遞迴是乙個頭遞迴,也就是說要先遞迴再回溯(編譯器無法將其優化為乙個迴圈結構),而且是將三個遞迴的結果進行合併,這樣的話演算法的執行時間呈指數增長(漸近時間複雜度為o(3^n))。可以利用動態規劃的思想對遞迴進行優化,其**如下所示:

public class test04 

return countwaysdp(n, map);

} private static int countwaysdp(int n, int map)

else if (n == 0)

else if (map[n] > -1)

else }

public static void main(string args)

}

面試拾遺 1

本文用來把我面試時遇到的沒有弄明白的問題記錄下來。一 資料庫的normalization與denormalization normalization的目的之一是減少冗餘的過程,之二是方便資料庫查詢語言的使用。什麼叫做方便資料庫查詢語言的使用呢?也就是消除update,insertion及deleti...

泛型程式設計拾遺

首先請大家思考乙個問題 以下6個問題可否共享一段 答案是肯定的。採用泛型程式設計對問題進行抽象,抽取出以上問題的共性即演算法 algorithm 容器 container 和迭代器 itera 這也是stl standard template library,標準模板庫 的三要素。1 templat...

《程式設計基礎(C語言)》拾遺

書名 程式設計基礎 c語言 第二版 編著者 張先偉 馬新娟 張立紅 王雲 田愛奎 學院的老師們 版次 2016 年 9 月 第2版 isbn 978 7 302 44086 4 出版社 清華大學出版社 這是我們程設課參考書 教材 自己突然興起想複習,溫故而知新嘛,並且總結總結,更深入的理解c語言吧。...