1.题目大意
小明早上设置几个闹钟起床上学,已知其到学校要花的时间以及上课时间。求其最晚几点起床。
2.输入样例
3
5 0
6 0
7 0
59
6 59
3.输出样例
6 0
4.坑点
(1)每次nextInt()输入一个整数之后,一定要cin.nextLine(),才能进行cin.nextLine()输入一个字符串。否则输入报异常!
(2)每次进行Integer.valueof或者Integer.parsetInt之前,一定要检测一下是否为""。再进行转换,否则就会报错,报异常!
5.代码如下
package offer;
import java.util.*;
public class Main1{
public static void main(String args[])
{
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
String[] str=new String[n+1];
cin.nextLine();
for(int i=1;i<n+1;i++)
{
str[i]=cin.nextLine();
}
int min=cin.nextInt();
cin.nextLine();
String end=cin.nextLine();
int[] num=new int[n];
int room=0;
if(!end.split(" ")[0].equals("")&&!end.split(" ")[1].equals(""))
{
room=Integer.parseInt(end.split(" ")[0])*60+Integer.parseInt(end.split(" ")[1]);
}
for(int i=1;i<n+1;i++)
{
if(!str[i].split(" ")[0].equals("")&&!str[i].split(" ")[1].equals(""))
{
num[i-1]=room-(Integer.parseInt(str[i].split(" ")[0])*60+Integer.parseInt(str[i].split(" ")[1])+min);
}
}
Arrays.sort(num);
int ans=0;
for(int i=0;i<n;i++)
{
if(num[i]>=0)
{
ans=room-num[i]-min;
break;
}
}
int hour=ans/60;
int minute=ans%60;
System.out.println(hour+" "+minute);
}
}