### 解題的流程
1. 理解題意
2. 思考所有可能的解法,以及對應的時間空間複雜度
3. 選擇想到的最優解法編寫**
4. 寫測試用例
### 寫**的流程
1. 想清楚**的初始狀態,遞推公式/遍歷要執行的操作,終止條件
2. 編寫初始化,迴圈遍歷**
3. 處理邊界值
4. 返回結果
### 常用的一些思想
0. 使用雜湊表降低各種查詢,存在判斷的時間消耗(空間換時間)
1. 公升維,例如跳表或cpu快取的設計 (空間換時間)
2. 遞迴(分治),盡量使用迭代來替換遞迴
3. 雙指標
4. 快慢指標
5. 棧(具有最近相關性特性的問題),單調棧(常用在需要求最大最小值的場景)
6. 輔助棧,輔助雜湊表,prehead(建立一些鋪墊的資料使**更加簡潔)
### 求解的流程
0. 對問題進行抽象,找出問題的本質,及各種約束
1. 先想出暴力的解法
2. 找出暴力解法中的重複操作,想辦法減少這些重複操作
3. 最小化問題中各種條件要求的依賴,依賴越少、越小,優化的可能性就越高,可操作的空間就越大
C語言演算法題的一些技巧
1.floor函式為向下取整函式。floor x 可以返回x的整數部分。如果想實現四捨五入的效果,可以用floor x 0.5 2.的表示方法。const double pi 4.0 atan 1.0 atan為反正切函式。3.想要獲取程式的執行時間,可以用clock 函式,除以clocks per...
Bloomberg 的一些基本技巧
首先bloomberg的面板一般分為三個部分 command line 和function area。如果第一次使用bloomberg 可以在command line 中輸入help。會介紹如何get start with bloomberg。進行搜尋的時候有兩種方式,乙個在command line...
一些基本演算法
1.最大奇數約數int fun int x return x int main 2 找出第二大的數,要求用for遍歷一遍const int minnum 0x80000000 int find 2 k int arr,int n else if arr i sec return sec void m...