我有隨機字符的二維數組。 我想匹配這些字符的特定模式:例如:ABA,BACKA,上/下/左/右。 找到這種模式的最佳算法是什麼?找到二維數組中的特定模式的最佳方法
7
A
回答
1
如果這就像是一個單詞搜索,你只能走一個方向(一旦你開始左邊,你只能繼續向左),答案應該非常簡單,只要繼續並測試每一個可能的開始位置和走向每個方向。在最壞的情況下,對於一個n乘n,這將是O(mn^2)。如果你可以任意多次上去/離開/ etc,最明顯的方法就是像矩陣一樣對待矩陣並執行BFS或DFS。根據單詞的大小和字母的分佈,這可能太昂貴了。
如果您對單個矩陣有多個查詢,則可以通過在類似trie的結構中對生成的單詞進行高速緩存並加入對原始單元格的引用來加速這兩種方法。
+0
謝謝。我需要匹配的單詞數量也非常大。對於大型矩陣和大量單詞,搜索速度較慢,緩存內存需求也顯着增加。任何優化? – Swami 2011-06-07 21:24:41
相關問題
- 1. 將二維數組保存到MongoDb的最佳方法
- 2. Java,如何從二維二維數組中找到特定值?
- 3. 如何找到二維數組所有列的最佳匹配?
- 4. 檢查二維數組中某個索引周圍指數的最佳方法
- 5. [Matlab] [Simulink]如何在二維數組中找到特定值?
- 6. 查找二維數組中特定元素的總數
- 7. 在「無序」數組中找到數字的最佳方法?
- 8. 使用二維數組找到列中的最大數字
- 9. 使用的indexOf方法找到一個二維數組值
- 10. 在二維矢量中找到唯一對的最快方法
- 11. 我無法找到二維數組中最低的AVG! (最高AVG工作)
- 12. 訪問二維數據的最佳方式
- 13. 在二維數組中尋找最大值的快速算法
- 14. 製作二維數組/集合類的最佳做法
- 15. 你如何找到了最大行中的二維數組
- 16. 如何在二維int數組中找到最常見的int?
- 17. 爲Android保存字符串的二維數組的最佳方法
- 18. 最快的方式從二維數組中獲取值
- 19. 查找多維數組中的模式
- 20. 如何在字符串的二維數組中找到特定的字符串?
- 21. 什麼是將二維對象數組綁定到也是類型安全的網格的最佳方式
- 22. 找到二維數組的總和java
- 23. 最佳的方式找到一個數組
- 24. 什麼可以是存儲二維數組對象的最佳方法?
- 25. 最佳的排序方式在PHP的鍵多維數組
- 26. 如何從二維數組的列總和中找到數組的最大值
- 27. 在二維數組中找到最大數目1
- 28. 在二維數組中找到重複的值3x3魔方
- 29. 什麼是在隨機數組中找到最大數字的最佳方法?
- 30. 存儲三個數據的最佳方法 - 多維數組?
這是面試問題嗎? – 2011-06-07 20:45:00
這是功課嗎?如果是,請標記爲這樣。 – 2011-06-07 20:50:42
這不是一個面試問題,這不是作業。 – Swami 2011-06-07 21:20:37