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