Contador de sub sequencias

alguem consegue resolver esse exercicio?

Implemente o metodo int nroSubSequencias(int[] v, int k) que dado um array de inteiros v, calcula (e retorna) o numero de subsequencias de tamanho k cujos elementos possuem os mesmos valores. Isto é, achar o numero de subsequencias tal que v[i] = v[i + 1] = … = v[i + k -1].
Ex: Supondo que v = [4, 2, 15, 15, 15, 3, 7, 7, 7, 7, 2] e k = 3, o metodo deve retornar 3, pois o array dado contem tres subsequencias de tamanho 3, uma subsequencia com valores 15 (v[2] … v[4]) e duas (sobrepostas) com valores 7 (v[6]… v[8] e v[7] … v[9]).

eu fiz e ficou assim:

[code]class Exercicio
{
int nroSubSequencias(int [] v , int k )
{

int contador = 0;   

for (int i = 0; i<v.length; i++)
{
  if (v[i] == v[i+k-1])
  {
    contador++;
  }
}
return contador;

}
}
[/code]

mas aparece “java.lang.ArrayIndexOutOfBoundsException: 11
at Exercicio2Prova.nroSubSequencias(Exercicio2Prova.java:11)”

Vc precisa percorrer o array duas vezes, com dois fors aninhados.
O externo percorre o array inteiro, enquando o interno percorre com base no índice do externo.
Ai vc iria contanto as ocorrencias iguais e quando bate com a quantidade desejada (k) vc quebra o for.
Caso haja diferença, quebra o for tbm.

[code]int[] v = { 4, 2, 15, 15, 15, 3, 7, 7, 7, 7, 2 };
int k = 4;
int contadorOcorrencias = 0;
int contadorSequencias = 0;

for ( int i = 0; i < v.length; i++ ) {

for ( int j = i; j < v.length; j++ ) {
    
    if ( v[i] == v[j] ) {
        contadorOcorrencias++;
        if ( contadorOcorrencias == k ) {
            contadorSequencias++;
            break;
        }
    } else {
        break;
    }
    
}

contadorOcorrencias = 0;

}

System.out.println( contadorSequencias );[/code]

Tente sempre fazer o exercício no papel, tentando entender o que deve ser feito. Ai fica mais fácil montar o algoritmo e então converter para um método.

[]´s

interessante!!
muito obrigada!!