买菜
package practice;
import java.util.Scanner;
public class ccf180902 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N = sc.nextInt();
int[][] arrs = new int[N][2];//存放第一个人的时间段
int len = 0;//聊天时间
for (int i = 0; i < N; i++) {
for (int j = 0; j < 2; j++) {//将第一个人的时间存在一个二维数组中,方便些
arrs[i][j] = sc.nextInt();
}
}
for (int i = 0; i < N; i++) {//读取第二个人的装车时间
int a = sc.nextInt();
int b = sc.nextInt();
for (int j = 0; j < N; j++) {//每次读取一个时间后,判断这个时间段与第一个人的所有的时间段是否有重合。
if (arrs[j][0]<=a&&a<arrs[j][1]) {
if (arrs[j][1]>b) {
len +=b-a;
}else if (arrs[j][1]<=b) {
len +=arrs[j][1]-a;
}
}else if (a<=arrs[j][0]&&b>arrs[j][0]) {
if (arrs[j][1]>b) {
len +=b-arrs[j][0];
}else if (arrs[j][1]<=b) {
len +=arrs[j][1]-arrs[j][0];
}
}
}
}
System.out.print(len);
}
}
总结
二维数组真的好用,注意考虑要全面。每写一步代码注意和前头进行审视检查,符不符合自己的逻辑和正常的业务逻辑,避免后面写的太长了,运行出现bug时候,无从修改。