解演算法題的一些基本技巧

2021-10-11 15:28:26 字數 616 閱讀 3230

### 解題的流程

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...