第一階段:練經典常用演算法,下面的每個演算法給我打上十到二十遍,同時自己精簡**,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程式打
出來.
1.最短路(floyd、dijstra,bellmanford)
2. 最小生成樹(先寫個prim,kruscal要用並查集,不好寫)
3.大數(高精度)加減乘除
4.二分查詢. (**可在五行以內)
5.叉乘、判線段相交、然後寫個凸包.
6.bfs、dfs,同時熟練hash表(要熟,要靈活,代 碼要簡)
7.數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 呼叫系統的qsort, 技巧很多,慢慢掌握.
9. 任意進製間的轉換
第二階段:練習複雜一點,但也較常用的演算法。
如: 1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網路流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:lcs、最長遞增子串、三角剖分、記憶化dp
6.博弈類演算法。博弈樹,二進位制法等。
7.最大 團,最大獨立集。
8.判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜尋、a*演算法,最小耗散優先.
演算法學習之路
目錄 演算法學習之路 一 前言 一 書籍 二 學習內容 1.空間複雜度,時間複雜度 2.貪心演算法 總結 由於長期沉迷摸魚哲學,感覺自己已經快廢了,決定今天開始學習一些演算法資料充實自己,希望不要三分鐘熱度吧。使用的學習書籍是csdn中自帶的 趣學演算法 看過很多演算法的教學書籍了,開頭都是老面孔了...
演算法學習之路 貪心
基本概念 貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀...
演算法學習之路(一)
目錄 題目一題目二 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...