用這個(gè)方法,誰都可以刷到leetcode排名第一(可復(fù)制)
前幾天,有人分享了一個(gè)利用GPT在leetcode刷題,學(xué)習(xí)算法,啟迪思路,提升編程能力的方法。
開始還不信,自己試了一下,驚了!AI理解問題,編碼解決問題的能力現(xiàn)在已經(jīng)這么流弊了嗎?
在leetcode找了一道描述比較復(fù)雜的算法題:
從數(shù)組nums[]中找滿足條件的四元組。
我開始認(rèn)為,AI應(yīng)該理解不了什么是:
“a * b = c * d”
“a != b != c != d”
以及,我認(rèn)為AI應(yīng)該不能通過兩個(gè)示例,去理解計(jì)數(shù)邏輯的。
結(jié)果證明,是我小看AI了。
畫外音:本次試驗(yàn),使用工具為Claude。
在prompt里,我對AI做了一個(gè)身份與能力的設(shè)定,以及精確的任務(wù):
(1)明確AI是程序員,擅長算法;
(2)明確了函數(shù)原型;
(3)復(fù)制了leetcode里的題目描述;
Claude輸出了什么呢?
(1)給出了簡單粗暴的四重循環(huán)解法;
(2)給出了算法邏輯;
(3)給出了時(shí)間復(fù)雜度與空間復(fù)雜度;
(4)給出了系統(tǒng)提示:我不擅長解決數(shù)學(xué)問題;
時(shí)間復(fù)雜度有點(diǎn)高,問下Claude是否有優(yōu)化空間:
(1)Claude使用了一個(gè)unordered_map空間換時(shí)間;
(2)給出了優(yōu)化邏輯;
(3)給出了時(shí)間復(fù)雜度與空間復(fù)雜度;
再逼一逼Claude,看是否有進(jìn)一步優(yōu)化空間:
(1)Claude使用了一個(gè)沒看懂的算法;
(2)給出了優(yōu)化邏輯;
(3)給出了時(shí)間復(fù)雜度與空間復(fù)雜度;
畫外音:額,這個(gè)真的能優(yōu)化到O(n)嗎?
沒使用寫代碼的專用AI,也沒用目前號稱最強(qiáng)的AGI工具GPT,甚至沒有使用升級后的Claude2,但AI對符號與邏輯的理解能力,以及編碼,迭代優(yōu)化的解題能力,真的震撼到我了。
對于程序員,在leetcode刷了多少題,有多少AC,其實(shí)并不關(guān)鍵。借助AI,啟迪我們拓寬思路,提升能力,是每個(gè)人都應(yīng)該去學(xué)習(xí)和思考的。
每一次技術(shù)革命浪潮,淘汰我們的并不是工具和技術(shù),而是背后那個(gè),最先掌握工具和技術(shù)的人。
對于這一輪AI革命浪潮,你怎么看?
畫外音:本文標(biāo)題由AI生成。