Следующий код в Java языки:Найти значение, которое происходит последовательно наиболее Nunber раз в массиве
int[] array = {1,2,2,3,3,3,2,2,1};
int k = 2;
Что мне нужно сделать, это найти значение (в данном случае 3), что происходит последовательно более k раз. Может быть только одно значение, которое occurs>k
, и если такой величины не существует, print -1
Пояснение:
1 происходит только 1 раз подряд.
2 происходит 2 раза, но его не> k.
3 происходит 3 раза, что составляет> k. Так, может быть только один возможный ответ, вы можете остановить поиски ответа в дальнейших значений и печать 3.
Срок для кода 0.25s
Update: То, что я пытался до сих пор
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
int[] array = {1,2,2,3,3,3,2,2,1};
int k=2;
int result = -1;
for(int lom =0;lom<array.length-1;lom++){
int temp = 0;
int lo=lom;
while(array[lo]==array[lom]){
temp+=1;
if(lo<array.length){lo++;}else{break;}
}
if(temp>k){
result = array[lom];
break;
}
}
System.out.println(result);
}
}
Когда я пытаюсь решить около 10 запросов, это занимает 2 секунды. Я должен завершить его в 1. Можете ли вы предложить некоторый метод оптимизации кода, чтобы я мог исследовать его, а затем повторить попытку.
Хорошо, что вы ** вы ** пробовали до сих пор? – QBrute
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он, кажется, является сокращенным и вставленным заданием без уплаты усилий. – duffymo
ideone.com/e.js/ZZT3Ay –