问题遇到的现象和发生背景
题目截图如下
我提交了我的算法答案,在数据量小的情况下是可以正常输出的,一旦数据量大的时候,就一直没有运行结果。
我检查了代码,也没有出现死循环的情况,现在不知道为什么会出现没有运行结果的情况,麻烦有思路的兄弟姐妹看看!
题目网址:https://www.lanqiao.cn/problems/172/learning/
问题相关代码,请勿粘贴截图
import java.util.Scanner;
import java.util.Arrays;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static long result = 0l;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[][] quare = new int[3][n];
for(int i = 0; i < 3; i++){
for(int k = 0; k < n; k++){
quare[i][k] = scan.nextInt();
}
Arrays.sort(quare[i]);
}
//定义两个指针(下标)
int j = 0;
int k = 0;
for(int i=0;i<n;i++){
//找到最后一个比quare[1][i]小的数
while(j<n && quare[0][j]<quare[1][i]){
j++;
}
//找到第一个比quare[1][i]大的数
while(k<n && quare[2][k]<=quare[1][i]){
k++;
}
result = result + (long)(j * (n-k));
}
System.out.println(result);
scan.close();
}
}
运行结果及报错内容
按回车,没有任何反应
我的解答思路和尝试过的方法
我想要达到的结果
遇到,数据量大的数据正常输出