Не удается выполнить все условия в проблемном дереве codechef2

#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