我不擅長算法設計,但在面試中遇到了這個問題。我的解決方案很幼稚,複雜程度很高,但可以在更短的時間內完成。在數組中查找所有重複的子序列
給定一個整數數組,找出該數組在數組中重複的所有子序列。打印子序列,然後開始索引和結束索引的所有發生。
e.g 1,0,1,9,5,1,9,5,1
這應該打印
1,9,5
3:5 6:8
9,5,1
4:6 7:9
1,9
3:4 6:7
5,1
5:6 8:9
9,5
4:5 7:8
我的解決辦法是從Arr[0]
開始至Arr[N/2 -1]
和1檢查,如果它重複那麼就減少了最終指數繼續檢查,如果它重複。
感謝
你在談論連續或不連續的子序列嗎?他們是否應該彼此相鄰?您的樣本數組中重複了幾次'1',但在您的樣本輸出中不存在(它絕對是子序列並重復)。 – n0rd
不是一個友好的面試問題 - 這是意味着 – mohsenmadi