演算法筆記_Fibonacci數列
Fibonacci數列主要是瞭解遞迴的基本格式,即遞迴邊界+遞迴式的順序,請牢記.
遞迴式是F(n)=F(n-1)+F(n-2)(n>=2)
程式碼示例如下:
#include<iostream> #include<cstdlib> using namespace std; int F(int n); int main(void) { int n; cin >> n; cout << F(n) << endl; system("pause"); return 0; } int F(int n) { if (n == 0 || n == 1) return 1;//遞迴邊界 else return F(n - 1) + F(n - 2);//遞迴式 }
相關推薦
演算法筆記_Fibonacci數列
Fibonacci數列主要是瞭解遞迴的基本格式,即遞迴邊界+遞迴式的順序,請牢記. 遞迴式是F(n)=F(n-1)+F(n-2)(n>=2) 程式碼示例如下: #include<iostream> #include<cstdlib> using namesp
演算法筆記 — 數列
題目連結:http://codeup.cn/problem.php?cid=100000583&pid=1 題目描述 編寫一個求斐波那契數列的遞迴函式,輸入n 值,使用該遞迴函式,輸出如下圖形(參見樣例)。 輸入 輸入第一行為樣例數m,接下來有
《機器學習實戰》第二章——k-近鄰演算法——筆記
在看這一章的書之前,在網上跟著博主Jack-Cui的部落格學習過,非常推薦。 部落格地址:http://blog.csdn.net/c406495762 《Python3《機器學習實戰》學習筆記(一):k-近鄰演算法(史詩級乾貨長文)》 講述的非常細緻,文字幽默有趣,演算法細
九章演算法筆記 5.深度優先搜尋 Depth First Search
DFS cs3k.com 什麼時候用dfs? 短, 小, 最問題 而90%DFS的題, 要麼是排列, 要麼是組合 組合搜尋問題 Combination 問題模型:求出所有滿足條件的“組合” 判斷條件:組合中的元素是順序無關的 時間複雜度:與 2^n 相關 遞迴三要素 一般來說,如果面試官不特
九章演算法筆記 4.寬度優先搜尋 Breadth First Search
演算法與題型 cs3k.com DFS: 用於搜尋, 題目中有ALL字樣 二分法: 用於時間複雜度小於O(n)的情況 分治法: 二叉樹問題, 子問題和父問題有關係 BFS:- 二叉樹上的寬搜- 圖上的寬搜: 拓撲排序- 棋盤上的寬搜 什麼時候應該用BFS? 圖
九章演算法筆記 3.二叉樹與分治演算法Binary Tree & Divide Conquer
大綱 cs3k.com • 時間複雜度訓練 II • 二叉樹的遍歷演算法 Traverse in Binary Tree Preorder / Inorder / Postorder • 二叉樹的深度優先搜尋 DFS in Binary Tree 1.遍歷問題 Preorder
九章演算法筆記 2.Binary Search
大綱 cs3k.com 第一境界 二分法模板 • 時間複雜度小練習• 遞迴與非遞迴的權衡• 二分的三大痛點• 通用的二分法模板 第二境界 • 二分位置 之 圈圈叉叉 Binary Search on Index – OOXX• 找到滿足某個條件的第一個位置或者最後一個位置 第三境界 •二分位置 之
九章演算法筆記 1.Introducing Algorithm Interview & Coding Style
Implement strStr cs3k.com http://www.lintcode.com/problem/strstr/ Returns the position of the first occurrence of string target in string source, or -1
九章演算法筆記 8.雜湊表與堆 Hash & Heap
大綱 cs3k.com 資料結構概述 雜湊表 Hash: a.原理 b.應用 堆 Heap: a.原理 b.應用-優先佇列 Priority Queue c.替代品-TreeMap 資料結構的兩類問題 cs3k
九章演算法筆記 6.連結串列與陣列 Linked List & Array
刷題注意事項 cs3k.com 每道題需要總結的 思路 演算法 核心程式碼 這個題得到的啟示!!!重點是bug free的能力 linked list理解 結果兩個都是 1 2 3 node是存在main函式裡的區域性變數, 還是全域性變數? 區
九章演算法筆記 7.兩根指標 Two Pointers
大綱 cs3k.com 同向雙指標 相向雙指標 Two Sum :3.1 大小• = target• <= target • > target 3.2 去重• unique pairs 3.3 離得近• closest to t
演算法筆記-快速冪
快速冪就是快速的求底數的整數次方,比起樸素的方法O(n)的時間複雜度,其時間複雜度是O(log2n)。這是很不錯的一個效率提升。 通常要求一個數X的Y次方,記做X^Y,樸素的計算方法是把X乘Y次得到這個結果。 而快速冪計算的過程是,對於指數Y進行奇偶性的判斷。為了方便解釋,
演算法筆記—日期類
題目連結:http://codeup.cn/problem.php?cid=100000578&pid=3 題目描述 編寫一個日期類,要求按xxxx-xx-xx 的格式輸出日期,實現加一天的操作。 輸入 輸入第一行表示測試用例的個數m,接下來m
演算法筆記 — 列印日期
題目連結:http://codeup.cn/problem.php?cid=100000578&pid=2 題目描述 給出年分m和一年中的第n天,算出第n天是幾月幾號。 輸入 輸入包括兩個整數y(1<=y<=3000),n(1<=n<=366)。
《演算法筆記》總結一
目錄 第二章 1. 定義變數時儘可能賦初值,避免在程式時出現未知訪問錯誤!!!(不能想當然的賴編譯器的預設初始化) 1.1C程式的記憶體佈局。 1.2記憶體管理的目的及建議 1.3 note that 2. ASCII碼的程式設計
演算法學習——遞推演算法之擺動數列
演算法描述 已知遞推數列: a(1)=1 a(2i)=a(i)+1 a(2i+1)=a(i)+a(i+1) (i為正整數) 求該數列的第n項,以及前n項中的最大值為多少,其n為多少? 演算法思路 採用遞推的方法,使用一維陣列,從2開始遞推,
演算法筆記_快速冪
快速冪演算法基於二分法思想 已下給出快速冪遞迴寫法 //求a^b%m,遞迴寫法 long long binaryPow(long long a, long long b, long long m) { if (b == 0) return 1;//如果b為0,那麼a^0=1 //b為
演算法筆記_區間貪心
即所謂的區間不相交問題:給出N個開區間(x,y),從中選擇儘可能多的開區間,使得這些開區間兩兩沒有交集,問最多找到多少個區間? 思路:總選擇左端點最大的區間,若左端點一樣,就選右端點最小的. 給出如下例項程式碼: #include<iostream> #include<
演算法筆記_全排列與N皇后問題
說明:這裡的全排列是按字典序的. 以下給出從1到3的全排列程式碼: #include<iostream> #include<stdlib.h> using namespace std; const int maxn = 11; //P為當前排列,hashTable記錄
演算法筆記_HASH字串雜湊
HASH字串雜湊的核心就是進位制轉換,轉化為十進位制整數的HASH整數雜湊,沒有什麼特別. 單純A到Z(全大寫字母)或者a到z(全小寫字母)視為26進位制. 大小寫混合視為52進位制 問題來了,大小寫混合還混上字母怎麼辦呢?有兩種想法: