第16章 新技術的誘惑(第1/2 頁)
楊辰饒有興趣的開啟連結。
跳出了一個註冊驗證。
楊辰輸入自己的手機號,然後,透過微信賬號,登陸上去。
進入第一個挑戰關卡,一道演算法問題。
看了題目,楊辰不由來了興趣。
求一個字串中最長不重複子串的長度,這是一道關於大資料的演算法的題題。
有點難度,不過,難不倒楊辰。
這一題有兩種解法,最簡單的辦法就是暴力破解法,另一種是巧妙使用指標來求解。
暴力破解法簡單粗暴,但是效率太低,用窮舉法列出所有可能的結果,然後,根據附加條件進一步篩選符合條件的解。
楊辰不打算使用,而是運用指標法求解,效率更高,但需要對指標有較深理解。
用三個整形maxLength 、start 、end 分別儲存最大子串長度、子串起始位置、子串結束,……。
楊辰調出程式設計工具,接連敲擊程式碼。
很快,楊辰在關卡下方的答案框,貼上下題目的答案程式碼竄,點選傳送。
沒多久,關卡驗證了答案,給予透過。
第二道關卡的題目跳出:一個二叉樹,求路徑之和
看了題目,楊辰眉頭一皺,這是一道客戶端的演算法題,經過一翻思考,他還是有思路將這道題目解出來。
第三題,第四題,……,楊辰一路過關斬將。
一直到了第十關,楊辰被題目難住了,苦苦想不出解題的思路。
有一個很大的整數list,需要求這個list中所有整數的和,如何實現多核並算,計算一個準確結果。
這種演算法不在楊辰的掌握之中,楊辰唯一的思路便是,採用多執行緒(任務),並且還要分割List,每一小塊的List採用一個執行緒(任務)進行計算其和。
那麼必須要等待所有的執行緒(任務)完成之後才能得到正確的結果,可是,要怎麼才能保證同一時間獲得“所有的執行緒(任務)完成之後輸出的結果?
……
楊辰眉頭緊皺,久久想不到這道題目的解體方式。
不過,楊辰在關卡下方看到一個闖關助手,點選那個連線可以獲得闖過這道關卡的攻略。
許久找不到解體答案,楊辰逼不得已,只能向這個系統認輸,點選尋求闖關戰略的連結。
連結開啟,直接跳轉到一個頁面,展示一種多核演算法的理論頁面。
楊辰微微愣了一下,認真閱讀這個多核演算法的演示內容,很快,心神便沉迷了下去,腦海中不斷並現一種新演算法邏輯。
在根據關卡題目的解體思路,套上這個多核演算法,楊辰很快找到了正確的闖關方法。
楊辰激動莫名,迅速按照多核演算法的運算邏輯,沒多久他寫出了闖關題目的標準答案。
點選-傳送。
答案正確,第十關通關,繼續闖下一關。
第十一關題目的內容呈現出來。
楊辰認真閱覽題目,片刻之後,他的臉色忽然變得難看,陷入了自我懷疑。
這是一道楊辰沒辦法搞定的題目,好像要應用與多核演算法類似的新型演算法。
楊辰連忙點選右下角的獲取通關的理論支援。
然而,這一次,闖關係統跳出一個提示對話方塊。
闖關積分不足,無法獲得理論支援。
楊辰看了一下規則,要連闖十關,才能獲得一個理論支援。
另外,闖關係統還提供了兩種獲得理論支援次數的方法,一,協助寫程式設計需求,二,協助審批程式。
楊辰好奇不已,連忙點選協助寫程式設計需求。