如何减少下面提供的Java代码的时间和空间复杂性? [关闭]

问题描述 投票:0回答:1

我如何修改其中的内容以缩短执行时间和内存使用量?。

        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();
           }

        }
java time-complexity space-complexity
1个回答
0
投票

基于您的解释不足,我想您想获得数组中最小的数字。

为此,您只需在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];
}
© www.soinside.com 2019 - 2024. All rights reserved.