[英]Detecting consecutive patterns in an Integer Array
在你指責這個線程是重復之前,只要意識到(從我所看到的)是在String數組中找到模式,這些模式似乎有很多額外的代碼,不需要我的目的。
如何在int數組中找到模式?
如果我有一個大於500個整數的數組,我需要連續測試~4個不同值的模式。 有什么好/快的方法呢?
這是一個例子:
17,39,78,324,43,33,234,99,34,555,39,78,324,43,45,92
很難說,但數字39,78,324,43
按順序重復兩次。 這是算法需要能夠檢測的內容。
提前致謝!
你想要的可以有2個結果。
如果你只需要打印每個數字重復的次數,就可以創建2個for循環,這些循環嵌套並遍歷內部循環中的整個數組,以找到外部循環的匹配整數,一旦完成,打印次數整數重復。
如果必須存儲重復整數的次數,則可以執行相同的過程,但這次需要存儲數字以及在數組中重復的次數然后打印它。
還要記住,在這兩種情況下,您都需要創建一個數組,用於存儲已計數的數字,以便您不再計算它們。
希望這可以幫助 :)
據我了解你的問題,最簡單的解決方案是(盡管你可以提高效率)
public class FindConsecutiveNumber{
public static void main(String[] args){
int i,j;
int[] c = {17,39,78,324,43,33,234,99,34,555,39,78,324,43,45,92};
for( i = 0; i < c.length; i++){
for( j = i+1; j < c.length-i; j++)
{
if(c[j] == c[i]){
if(c[j+1] == c[i+1] && c[j+2] == c[i+2] && c[j+3] == c[i+3])
{
System.out.println(c[i] + "," +c[i+1] + ","+c[i+2] + ","+ c[i+3] );
break;
}
}
}
}
}
}
我的輸出就像這個39,78,324,43
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.