從《迴圈的代價》中學到的

2021-07-05 03:11:43 字數 415 閱讀 8810

最近在看《演算法競賽入門經典》,書中提到迴圈的兩大常見問題,並提出一些建議。

第一是算術運算溢位的問題,尤其是n很大而且都是做的乘法的時候。最常見的現象是輸出負值,每步printf也能觀察到。如果換資料型別仍解決不了的話,可能得改演算法了。

書中的例子是對最終的取餘%運算作轉化。「要計算只包含加法/減法和乘法的整數表示式除以n的餘數,可以在每步計算之後對n取餘,結果不變。」即把最後一步取模改為迴圈中每步取模。

迴圈容易出現第二個問題是效率低下,runtime error。可以巧用計時函式進行觀察:

printf("%.2f",(double)clock()/clocks_per_sec);

(用的時候要#include ;double不能去掉,否則出錯。)

可以觀察執行時間和n的關係,進而修改或優化演算法(不是那麼容易解決的)。

我從程式設計面試中學到的

為了實習生職位和全職工作,我做過很多次的面試。當我還在大學主修電腦科學時,學校每個秋季學期都有招聘會,第一輪招聘會在校園裡舉行。我在第一和最後一輪都搞砸過。不過,每次面試後,我都會反思哪些方面我能做的更好,我還會和朋友們做模擬面試,這樣我就能從他們那兒得到更多的面試反饋。不管我們怎麼樣找工作 工作中...

從兩個團隊中學到的

因為面對的是兩個開發專案,做的時間長了,很容易對這兩個開發團隊的流程優劣有個比較。團隊a 大專案,人手充足,開發人員能力跨度從高到低分布均勻,流程較規範,pm很有經驗,比較善於和客戶溝通以及爭取時間。缺點是 的介面容易出現責任模糊的問 題。由於人員互相之間對於別人的流程完全不清楚,一旦出現人手不夠需...

從 IT 中斷中學到的最佳監控實踐

每個運維監控工具,一般要追蹤數十萬個內部效能指標。學會對哪些事件進行告警以及監控確實需要花費想當長的一段時間。因為,並非所有的指標等級都是一致。因此我們需要摸索出一套簡單的方法,便於管理所有指標,而且簡單易學。以下為我們總結的 datadog 的一些實踐經驗。首先我們應該了解我們為什麼你要花費心力實...