給定一個整數數組,找到尺寸爲k的最小詞法子序列。 EX: Array : [3,1,5,3,5,9,2] k =4 Expected Soultion : 1 3 5 2
陣列中尺寸k的最小字典順序子序列
0
A
回答
0
這裏是一個greedy
的算法,應該工作:
Choose Next Number (lastChoosenIndex, k) {
minNum = Find out what is the smallest number from lastChoosenIndex to ArraySize-k
//Now we know this number is the best possible candidate to be the next number.
lastChoosenIndex = earliest possible occurance of minNum after lastChoosenIndex
//do the same process for k-1
Choose Next Number (lastChoosenIndex, k-1)
}
上面的算法是高度複雜的。
但是我們可以pre-sort
所有數組元素paired
與他們的array index
並且使用單個循環貪婪地執行相同的過程。 由於我們使用的分類複雜性仍然是n*log(n)
0
- 我建議你可以嘗試使用修改後的合併排序。
- 修改的地方是合併部分,丟棄重複值。
- 選擇最小的4
的複雜度爲O(N LOGN) 還在想複雜能否O(N)
+0
此解決方案將永遠不會工作。選擇最小的四個不是意圖。選擇詞典學最小的序列就是意圖。 例如:對於輸入'2 1 1 1 9 9 9'選擇'1 9 9 9'比'2 1 1 1'好。 –
相關問題
- 1. 按字典順序排列的第k個字符串中的最小字符
- 2. 尺寸屬性列表順序
- 3. 減去矩陣,K尺寸從n個的矩陣陣列中,K個維度
- 4. 如何更改陣列尺寸的順序
- 5. 陣列大小n爲k相同尺寸組
- 6. 爲什麼mxCreateNumericMatrix的最大尺寸小於系統最大陣列尺寸?
- 7. K-尺寸子圖
- 8. 最小尺寸子陣薩姆與排序
- 9. 排序K-排序陣列具有最小堆
- 10. C++指針陣列的最大尺寸
- 11. .NET陣列的最大尺寸
- 12. 陣列中最長的子序列
- 13. 打印k下一個按字典順序排列的n位數字排列
- 14. 排序字典陣列
- 15. 將陣列投射到更小尺寸的陣列
- 16. 在java中按字典順序排列(按字母順序)
- 17. 缺失陣列的尺寸
- 18. JSON陣列的Crossfilter尺寸
- 19. 尺寸的陣列37
- 20. 的Java 2D陣列尺寸
- 21. 使用鄰接矩陣或列表的圖的最小尺寸
- 22. 將一個序列劃分成連續的最大尺寸集合K
- 23. K方式合併排序陣列實現使用最小堆
- 24. 排隊在最小尺寸隊列
- 25. 刪除最小子集以生成序列順序的算法
- 26. 與較小尺寸陣列相比,矩陣中的行提取。
- 27. 難陣列排序順序
- 28. 尺寸最小的子陣列的具有比給定值總和
- 29. 陣列未標註尺寸
- 30. 陣列2尺寸環
這很有道理,但是沒有針對此解決方案的動態編程方法? – v1kas
看這裏期望的序列大小'k'是固定的。而你想要lex最小的那個尺寸。我認爲任何動態編程方法都是高度複雜的,並且基本上都是在做貪婪的方法。 –