#java #arrays #logic
#java #массивы #Логические
Вопрос:
пожалуйста, может кто-нибудь проверить и сказать, почему этот код не может выполнить условие 80%.
Эта проблема представлена в CodeChef с проблемным деревом кода 2. Это проблема в разделе для начинающих.
Есть 2 задачи. с помощью следующего кода я могу выполнить задачу на 20%, но я не могу выполнить вторую задачу, которая состоит из 80%.
Пожалуйста, изучите это и предложите, что пошло не так.
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
int t,n,h;
Scanner s=new Scanner(System.in);
t=s.nextInt();
while(t-- > 0)
{ h=0;
n=s.nextInt();
int [] arr=new int [n];
for(int i=0;i<n;i )
arr[i]=s.nextInt();
Arrays.sort(arr);
while(true)
{
if(arr[n-1]==0)
break;
h ;
if(arr[0]==arr[n-1])
break;
for(int i=n-2;i>=0;i--)
{
if(arr[i]!=arr[n-1])
{
for(int j=i;j<n;j )
arr[j]=arr[i];
break;
}
}
}
System.out.println(h);
}
}
}
Комментарии:
1. Здравствуйте и добро пожаловать. Я считаю, что было бы несправедливо, если бы мы помогли вам в конкурсе. Если вам нужна какая-либо общая помощь, связанная с программированием, или по конкретной проблеме, не стесняйтесь обращаться. Некоторые вещи, которые приходят мне на ум при работе с ними, это: нехватка времени, памяти или переполнение переменной.
Ответ №1:
это связано с временной сложностью. вы используете 4 цикла. это приводит к увеличению временной сложности n до 4. попробуйте решить, используя только один цикл или без цикла. для подсказки перейдите к концепции SET