輪子哥知乎現場解答算法題,程式設計師們一臉懵逼:半天沒看懂題目

小編在知乎上看到的一道題,拿來分享給大家:

一副撲克牌中抽出13張從a到k然後把上面的一張抽出來放最低下,第二張是1拿出來擺桌上,再把最上面的一張抽出來放底下,第二張是2放桌上。以此類推把他們按照順序都抽出來,怎麼擺?

輪子哥直接表示很簡單。直接把一副1..n的牌那樣玩一遍,他的結果就是索引值,然後把桌子上的牌堆按照索引值排個序(這裡是O(n)),就得到原來的結果了。我覺得思路應該1秒鐘給出來,寫代碼檢查一下可能需要10分鐘。

輪子哥知乎現場解答算法題,程序員們一臉懵逼:半天沒看懂題目

然後就有網友說:題目暗示性很強啊,不太容易想到巨硬老哥的做法,強!

然後有一名網友發表了自己解答這道題目的過程及代碼(代碼放在文尾),同是他還覺得逆向的方法倒是挺簡單。

如果大家想要學習java編程的小夥伴,可以關注小編頭條號,【點擊頭像,右上角私信:學習】,小編是一名從事了6年java開發的全棧工程師,免費送一套比較系統的java資料、教程和工作經驗,權當是福利吧!

輪子哥知乎現場解答算法題,程序員們一臉懵逼:半天沒看懂題目

看到這些大神都在討論這套題,這些小夥伴都一臉懵,異口同聲的說道:看了半天沒看懂題目是啥意思,誰能解釋下?

同是也有人問:這時NOIP(全國青少年信息學奧林匹克聯賽)難度級別的題目?

輪子哥知乎現場解答算法題,程序員們一臉懵逼:半天沒看懂題目

Python:

def MiTest2(n):

result = []

for i in range(n):

result = result[-1:] + result[:-1]

result = [(n-i)] + result

print(result)

對於輪子哥和這位網友不同的解決方法,大夥有什麼跟好的方案嗎?歡迎在下方評論區吐槽!

如果大家想要學習java編程的小夥伴,可以關注小編頭條號,【點擊頭像,右上角私信:學習】,小編是一名從事了6年java開發的全棧工程師,免費送一套比較系統的java資料、教程和工作經驗,權當是福利吧!

輪子哥知乎現場解答算法題,程序員們一臉懵逼:半天沒看懂題目


分享到:


相關文章: