算法编程题的心得体会
生活随笔
收集整理的這篇文章主要介紹了
算法编程题的心得体会
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果是在線筆試,一定要注意問題的規模,
- 這牽涉到算法時間復雜度的要求
- 也涉及相關數據結構的設計
- 比如,一道關于郊游的題目,學生的規模最大才到 10 人;
再考察學生之間的關系時,顯然可以使用二維數組bool areFriends[10][10];
- 比如,一道關于郊游的題目,學生的規模最大才到 10 人;
如果是現場筆試,則要適時地向面試官提問,關于問題規模和環境的問題;
提供多種算法解題思路,效率優先 ? 貪心,方案優先 ? 動態規劃;如果是浮點類型,優先選擇使用 double 而不是 float;
一些相對高級的用法:比如 C++14 新特性,比如 Lambda 表達式,減少函數的定義(函數式編程),
1. 好的編程習慣
將一些邏輯清晰,功能完整、且會重復使用的代碼,從主函數中抽離出來,封裝成獨立的函數;
比如多時鐘之間的時鐘同步問題,
每一次開關的操做對所有時鐘的影響,可以單獨作為一個函數,
是否所有的時鐘都已被校準同步;變量名要有清晰的物理意義;
2. 算法實現中
- 一次遍歷下來,獲取的有用信息可能有多個,不見得一定是區間的最小值,也可以同時維護區間的和等信息。
3. case 怎么用
- 可根據 case 的輸入情況,設計存儲 case 的數據類型,
- 如果一段數字,顯然是數組,或者 vector;
- 如果是一串字符,顯然是 string,或者字符數組;
4. 圍繞變量、數組以及其他數據結構展開
沒有數據結構也就沒有算法;
在進行進一步的算法流程之前,第一步設置合理的數據結構,數據結構可以復雜的優先隊列,二叉樹,圖的鄰接表,也可以是簡單的一維、二維數組,結構體。
比如旅行商問題,當然要考慮,每個城市結點的訪問情況,bool visited[n];
轉載于:https://www.cnblogs.com/mtcnn/p/9423915.html
總結
以上是生活随笔為你收集整理的算法编程题的心得体会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事务知识
- 下一篇: C#可用的日出日落时间类