我如何修改其中的内容以缩短执行时间和内存使用量?。
import java.util.Arrays;
import java.util.Scanner;
public class CandidateCode {
public static void main(String args[] ) throws Exception {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long rqd[] = new long[N];
for (int i = 0; i < N; i++) {
rqd[i] = sc.nextLong();
}
for (int i = 0; i < N; i++) {
rqd[i] = sc.nextLong()/ rqd[i];
}
Arrays.sort(rqd);
System.out.print(rqd[0]);
sc.close();
}
}
基于您的解释不足,我想您想获得数组中最小的数字。
为此,您只需在O(N)时间内在数组上循环一次即可找到它,而无需对数组进行排序
long min = 1 << 64 - 1;
for(int i = 0; i < N; i++){
rqd[i] = sc.nextLong() / rqd[i];
if(rqd[i] < min) min = rqd[i];
}