摘要:不過好消息是,在事件發生的二十四小時以后,我發現我的賬號解禁了,哈哈哈哈。
本文最初發布于我的個人博客:咀嚼之味
從昨天凌晨四點起,我的 Leetcode 賬號就無法提交任何代碼了,于是我意識到我的賬號大概是被封了……
起因我和我的同學 @xidui 正在維護一個項目 xidui/algorithm-training。其實就是收錄一些算法題的解答,目前主要對象就是 Leetcode。我前幾天正好做到 #17 Letter Combinations of a Phone Number。題目也蠻簡單的,我寫好以后提交了一下,發現跑出來的結果是 152 ms —— “哇哦,你打敗了 2.44% 的提交”。好差!!我瞬間滿臉黑線。而之前提到的項目中正好有另一個同學寫的關于這一題的解答,我趕緊去參考了一下,感覺空間復雜度比我小很多,但時間復雜度應該差不多呀,然后注釋中有這么一句:
I think this is an O(n^3) solution, but still runs faster than 100% submissions
不信邪的我把這位同學的代碼復制過來提交了一下,得到的結果是 —— 160ms...“哇哦,你打敗了 2.44% 的提交哦!” ╮(╯_╰)╭
看了看 Discuss 里的解法,感覺復雜度似乎也差不多,于是我決定研 (Zuo) 究 (Si) 一下 Leetcode OJ 服務的穩定性如何。
過程打開 Chrome 的開發者工具,發現只有 submit 和 check 兩種 ajax 請求,response 內容大概是這樣的:
// `submit` response { "submission_id": 46823974 } // first `check` response { "state": "STARTED" } // second `check` response { "lang": "javascript", "total_testcases": 25, "status_code": 10, "status_runtime": "152 ms", "run_success": true, "state": "SUCCESS", "total_correct": 25, "question_id": "17" }
所以只要先模擬一個 submit 的 POST 請求,拿到 submission_id 后,再用這個 id 模擬 check 的 GET 請求,直到拿到最終的結果。
我直接把之前發送的兩個 ajax 請求用 Curl 的形式保存下來:(感謝 Chrome ╰( ̄▽ ̄)╮)
然后我寫了個 Nodejs 的小程序,每隔一分鐘調用上面保存的兩個腳本來進行一次提交,并把當次的執行速度保存到 Mongodb 中。代碼我就不貼啦,有興趣的話可以到 zry656565/Leetcode-Benchmark 看看。
結果這個程序大概是在十一點左右的時候開始運行的。本以為一分鐘一次的頻率并不高,結果第二天起來一看,從凌晨四點多開始就沒有數據了,自此我這個賬號就提交不了代碼了。。
當然啦,采集到了 300 多條數據也不能白費了,畫個圖出來看看吧。任意一個節點所提交的程序片段都是同一個,大概最終的結果是這樣的:
(⊙o⊙)…本來想著是不是能找到某個 Leetcode 的服務器稍微穩定一點的時刻,不過似乎并不存在這樣的時刻呢。呵呵,然并卵。不過好消息是,在事件發生的二十四小時以后,我發現我的賬號解禁了,哈哈哈哈。
完。文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78195.html
從事 Android 開發工作要滿 5 年了,雖然明白自己技術很一般,但是也總是期望能夠有機會進入更好的平臺發展。這不,因為機緣巧合有了一次 Booking 的面試邀請(是在 hackerrank 上),然后開始臨時抱佛腳 (leetcode 走起),最終選擇了一個周末去完成線上測試,結果我完全沒預料到。本以為會被某道題的邏輯繞昏,結果哪知道被標準輸入這個東西卡得死死的,現在就記錄一下這次非常糟...
摘要:相關環境由于是一個幾年前的項目,所以使用的是這樣的。一些小提示本次優化筆記,并不會有什么文件的展示。將異步改為了串行,喪失了作為異步事件流的優勢。 這兩天針對一個Node項目進行了一波代碼層面的優化,從響應時間上看,是一次很顯著的提升。 一個純粹給客戶端提供接口的服務,沒有涉及到頁面渲染相關。 背景 首先這個項目是一個幾年前的項目了,期間一直在新增需求,導致代碼邏輯變得也比較復雜,接...
摘要:正確的思路是等概率隨機只取出共個數,每個數出現的概率也是相等的隨機輸出把一段代碼改成,并增加單元測試。代碼本身很簡單,即使沒學過也能看懂,改后的代碼如下但是對于單元測試則僅限于聽過的地步,需要用到,好像也有別的模塊。 在拉勾上投了十幾個公司,大部分都被標記為不合適,有兩個給了面試機會,其中一個自己覺得肯定不會去的,也就沒有去面試,另一個經歷了一輪電話面加一輪現場筆試和面試,在此記錄一下...
閱讀 1167·2021-10-20 13:48
閱讀 2173·2021-09-30 09:47
閱讀 3104·2021-09-28 09:36
閱讀 2342·2019-08-30 15:56
閱讀 1195·2019-08-30 15:52
閱讀 2020·2019-08-30 10:48
閱讀 607·2019-08-29 15:04
閱讀 564·2019-08-29 12:54