Java 在整数数组中检测连续模式

Java 在整数数组中检测连续模式,java,arrays,Java,Arrays,在你指责这个线程是一个重复的线程之前,你只要意识到(从我所看到的)正在字符串数组中寻找模式,这似乎有很多额外的代码是我不需要的 如何在int数组中查找模式? 如果我有一个大于500个整数的数组,我需要连续测试~4个不同值的模式。做这件事的好/快方法是什么 下面是一个例子: 17,39,78,324,43,33,234,99,34,555,39,78,324,43,45,92 很难说,但是数字39,78324,43按顺序重复了两次。这就是算法需要能够检测到的 提前谢谢 你想要的结果可能有两种 如

在你指责这个线程是一个重复的线程之前,你只要意识到(从我所看到的)正在字符串数组中寻找模式,这似乎有很多额外的代码是我不需要的

如何在int数组中查找模式?
如果我有一个大于500个整数的数组,我需要连续测试~4个不同值的模式。做这件事的好/快方法是什么

下面是一个例子:

17,39,78,324,43,33,234,99,34,555,39,78,324,43,45,92
很难说,但是数字
39,78324,43
按顺序重复了两次。这就是算法需要能够检测到的


提前谢谢

你想要的结果可能有两种

如果只需要打印每个数字的重复次数,则可以为嵌套的循环创建2个for循环,并在内部循环中遍历整个数组,以查找与外部循环匹配的整数,完成后,打印整数的重复次数

如果必须存储一个整数的重复次数,可以遵循相同的过程,但这次需要在数组中存储该数字及其重复次数,然后将其打印出来

还请记住,在这两种情况下,您都需要创建一个数组来存储已计数的数字,这样您就不会再次计数


希望这对你有所帮助:)

你的愿望有两种结果

如果只需要打印每个数字的重复次数,则可以为嵌套的循环创建2个for循环,并在内部循环中遍历整个数组,以查找与外部循环匹配的整数,完成后,打印整数的重复次数

如果必须存储一个整数的重复次数,可以遵循相同的过程,但这次需要在数组中存储该数字及其重复次数,然后将其打印出来

还请记住,在这两种情况下,您都需要创建一个数组来存储已计数的数字,这样您就不会再次计数


希望这有帮助:)

据我所知,最简单的解决方案是(尽管你可以提高效率)

公共类findConcecutiveNumber{
公共静态void main(字符串[]args){
int i,j;
int[]c={17,39,78324,43,33234,99,34555,39,78324,43,45,92};
对于(i=0;i

就我所理解的你的问题而言,最简单的解决办法是(尽管你可以使它更有效)

公共类findConcecutiveNumber{
公共静态void main(字符串[]args){
int i,j;
int[]c={17,39,78324,43,33234,99,34555,39,78324,43,45,92};
对于(i=0;i

我的输出是这样的
39,78324,43

你说的“~4个不同的值”是什么意思?您是否在寻找重复两次的模式?或者可能更多?您的问题相当不清楚。这似乎类似于LRS(最长重复子字符串)或类似problems@Djizeus像
39,78324,43
这样的4个值至少重复了一次。尝试实现字符串匹配算法“~4个不同的值”是什么意思?您是否在寻找重复两次的模式?或者可能更多?您的问题相当不清楚。这似乎类似于LRS(最长重复子字符串)或类似problems@Djizeus像
39,78324,43
这样的4个值至少重复了一次。尝试实现字符串匹配算法nhmm,我不确定这就是我要寻找的。正如Konstantinos所说,我在寻找最长的重复连续整数集,而不仅仅是一个。嗯,我不确定这就是我要寻找的。正如Konstantinos所说,我在寻找最长的重复连续整数集,而不仅仅是一个。
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;
                   }

           } 
        }


    }
}

}