Kann ich dieses Problem von Terminated wegen Zeitüberschreitung gelöst bekommen?Wie löst man dieses Problem wegen Zeitüberschreitung in Java?
Ich meine, wie die Komplexität oder unerwünschten Code zu reduzieren, um das Problem zu lösen?
Hier ist mein Code:
public class Solution {
public static void main(String[] args) {
int i,n,hit,count=0,p=0,t,tmp,j;
int h[]=new int[100000];
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
hit=sc.nextInt();
t=sc.nextInt();
for(i=0;i<n;i++){
h[i]=sc.nextInt();
}
for(i=0;i<n;i++){
for(j=i;j<n;j++){
if(h[i]>h[j]){
tmp=h[i];
h[i]=h[j];
h[j]=tmp;
}
}
}
for(i=1;i<=t;i++){
h[p]-=hit;
if(h[p]<=0){
count++;
p++;
}
}
System.out.println(count);
}
}
Erstens:
Der fertige Code sollte wie folgt aussehen Sie Blase Art verwenden nicht. Verwende 'Arrays.sort'. Viel schneller. –
Wenn eine Antwort für Sie funktioniert hat, markieren Sie sie als akzeptierte Antwort. Ansonsten, kommentieren Sie es, dass es nicht funktioniert hat. Es hilft Ihnen, die richtige Antwort schneller zu bekommen. Stellen Sie sicher, dass Sie tatsächlich die Antworten versuchen. – Spencer4134