【发布时间】:2017-05-18 07:34:49
【问题描述】:
我可以解决这个因超时而终止的问题吗?
我的意思是如何减少复杂性或不需要的代码以解决问题?
这是我的代码:
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);
}
}
【问题讨论】:
-
首先:不要使用冒泡排序。使用
Arrays.sort。更快。 -
如果某个答案对您有用,请继续并将其标记为已接受的答案。否则,请评论它不起作用。它可以帮助您更快地获得正确答案。不过,请确保您确实尝试了答案。
标签: java arrays sorting for-loop