我不找任何代碼或有東西給我正在做的。我需要一些幫助才能開始正確的方向,但不知道如何去做。如果有人能夠提供一些資源來解決這些問題,我將非常感激。我坐在我的筆記本上,無法設計一個可以做我想做的事情的算法。查找跨多個數組的序列號的有效方法?
我也許可以這樣做:
foreach element in array1
foreach element in array2
check if array1[i] == array2[j]+x
我相信這會爲正向和反向序列工作,併爲倍數只檢查array1[i] % array2[j] == 0
。我有一個包含INT數組列表,並且我得到list[index]
(用於array1
)和list[index+1]
爲array2
,但這種方法可以得到複雜和漫長的快,尤其是對於大型陣列和這些陣列的大名單。因此,我正在尋找更好的解決方案。
我試圖來爲不同陣列中找到序列號的算法。
例如:
[1, 5, 7]
和[9, 2, 11]
會發現,1
和2
是連續的。
這也應該適用於在多個陣列多個序列。因此,如果有第三個數組[24, 3, 15]
,它也將包含該序列中的3
,並繼續到下一個數組,直到沒有與last sequential element + 1
匹配的數字。
還應該能夠找到陣列之間的多個序列。
例如:
[1, 5, 7]
和[6, 3, 8]
會發現,5
和6
是連續的,也7
和8
是連續的。
我也有興趣在尋找反向序列。
例如: [1, 5, 7]
和[9, 4, 11]
將返回5
和4
是相反順序。
實施例與所有:
[1, 5, 8, 11]
和[2, 6, 7, 10]
將返回1
和2
是連續的,5
和6
是連續的,8
和7
是相反順序,11
和10
是相反順序。
它也可以重疊:
[1, 5, 7, 9]
和[2, 6, 11, 13]
將返回1
和2
順序,5
和6
順序,也7
和6
反向順序。
我也想擴大這個與x
差,以檢查數(上面的例子與1
差量檢查)。
除了所有這些(雖然這可能是一個不同的問題),我也想檢查的倍數,
例子: [5, 7, 9]
和[10, 27, 8]
將返回5
和10
作爲倍數,9
和27
作爲倍數。
和數字相同的地方。
例子: [3, 5, 7]
和[13, 23, 25]
將返回3
和13
和23
具有相同的個位數字。
首先對數組進行排序,然後您可以更輕鬆地找到序列號 – samgak