1. 遇到問題時(shí)要注意題中的條件:
給定一個(gè)有序數(shù)組xxx 中,"有序"是否可以利用?
2. 沒有思路時(shí)怎么辦?
a: 用幾個(gè)簡單的測試用例,檢驗(yàn)一下
b:暴力解法 通常都是思考的起點(diǎn).
3.還是沒有思路怎么辦?
a: 遍歷常見的算法思路
b: 遍歷常見的數(shù)據(jù)結(jié)構(gòu)
c: 空間和時(shí)間的交換?
d: 預(yù)處理數(shù)據(jù) => 排序
e: 在瓶頸處找到答案
4.實(shí)際編寫問題
a: 極端條件判斷
數(shù)組為空? 字符串==null? 數(shù)字==0? 指針->null?
b: 變量名等 符合規(guī)范
c: 注重模塊化,復(fù)用性
算法在1s之內(nèi) 可解決的問題:
O(n^2) 的算法可處理大約10^4級(jí)別的數(shù)據(jù)
O(n) 的算法可處理大約10^8級(jí)別的數(shù)據(jù)
O(nlogn)的算法可處理大約10^7級(jí)別的數(shù)據(jù)