-5
Q
下一個最高數
A
回答
1
下面是一個算法的總結,它可以做你想做的事情。如果您想了解更多細節,代碼或算法正確性的證明,請向我們展示您迄今爲止所做的更多。
我們以1862
爲例。從最右邊的數字向左掃描該數字的數字,直到找到連續的一對數字,其中左邊的數字小於右邊的數字。在這種情況下,這是18
。我們把這個左邊數字稱爲「樞軸」位置(這裏是1
)。您現在將重新排列以該數據透視開始的數字中的數字。用位於其右側任何位置的下一個更大的數字替換主鍵(在這種情況下爲2
)。然後在該數字之後,將所有其他數字放在原點的右側(在這種情況下爲186
),並按升序排列(此處爲168
)。結果是您的答案2168
。
在您的其他示例22405
中,您可以掃描並在05
處停止。在這種情況下,您將0
替換爲5
,然後將其他數字(0
)替換後按照升序排列。所以你離開224
獨自一個,並最終22450
。
如果在您的反向掃描中,您沒有發現任何連續的一對數字,其中左邊的數字小於右邊的數字,那麼這些數字沒有更大的數字。
有一個技巧可以按照遞增的順序加快數字的位置,但我會把它留給你。
相關問題
- 1. 查找序列中下一個最高和最低的數字
- 2. 查找下一個最高陣列鍵
- 3. BST,尋找下一個最高點
- 4. 如何選擇下一個最高ID?
- 5. 查找下一個最高值
- 6. 如何將Java中的下一個最高百位數整數?
- 7. 如何插入下一個最高數到數據庫
- 8. 最高的高度匹配下一個元素
- 9. 爲每個下一個循環爲下一個循環最高編號
- 10. 在matlab中查找沒有循環的下一個最高和一個數字中次數最少的數字
- 11. 查找JavaScript中數組中下一個最高元素中最低的元素
- 12. 選擇下一個較高數
- 13. 如何從mysql行中獲取下一個最高數字,給定一行id
- 14. 選擇一系列值中的下一個最高數據元素
- 15. 獲得最高數字,然後在新文件中打印下一個數字
- 16. 確定可以分解爲素數的下一個最高數字{2,3,5,7}
- 17. 如何比較數字字符串,並找到下一個最高迴文數?
- 18. 創建一個數組,並得到最低和最高價值
- 19. PostgreSQL的:檢查的最後一個數字是最高的
- 20. 獲取下一個最小的雙數
- 21. 如何插入下一個最高編號
- 22. 用二分查找返回下一個最高值
- 23. R - 時間序列中的下一個最高值
- 24. 在Pandas的下一個K連續行中找到最高值?
- 25. 下一個最小最接近的數字得到一個小數
- 26. 如何確定比下一個最大值高2倍的最大值
- 27. Vlookup下一個最大值
- 28. WPF - 第一個數據網格的兩個,最大高度
- 29. 創建一個隨機數組返回最高數字Javascript
- 30. 設置PopupWindow有一個最大高度
你說「下一個最高號碼」是什麼意思?你的意思是通過重新排列原始數字的小數位數可以得到的所有數字中的第二高嗎?通過「數學過程」,你是指某種計算機語言或其他東西的算法或代碼?我在Object Pascal(Delphi)中有這樣的代碼,並且很想將它翻譯成Python,但是你需要澄清你想要的東西。您還需要告訴我們您迄今爲止在這個問題上所做的工作,並顯示您所做的任何代碼。這不是一項家庭作業回答服務。 –
[查找下一個給定字符串的更大排列的算法]的可能重複(http://stackoverflow.com/questions/1622532/algorithm-to-find-next-greater-permutation-of-a-given-string) –
這就是['std :: next_permutation'](http://stackoverflow.com/a/16680391/995714)用於 –