首页 > 试题广场 >

牛牛的闹钟

[编程题]牛牛的闹钟
  • 热度指数:32198 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床

输入描述:
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。
接下来的一行包含一个整数,表示从起床算起他需要X(0<=X<=100)分钟到达教室。
接下来的一行包含两个整数,表示上课时间为A(0<=A<24)时B(0<=B<60)分。
数据保证至少有一个闹钟可以让牛牛及时到达教室。


输出描述:
输出两个整数表示牛牛最晚起床时间。
示例1

输入

3 
5 0 
6 0 
7 0 
59 
6 59

输出

6 0
JavaScript(Node) 😎题目:网易-牛牛的闹钟
//单位转换 遍历数组  clockArr[j]> 上课时间schoolTimeMax - 赶路时间x
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})
let inArr = []
rl.on('line', line=>{
    if(!line) return
    inArr.push(line.trim())
    let len = inArr.length
    let n = +inArr[0] //n: alarm number 
    if(len == n+3){
        let x = inArr[len-2]  //x: 起床到教室需要X(0<=X<=100)分钟
        let schoolTime = inArr[len-1].trim().split(' ') //schoolTime:上学时间(h,m)
        let schoolTimeMax = +(schoolTime[0])*60 + +(schoolTime[1])
        let clockArr = []; //clockArr: n行 data
        //遍历 n行闹钟数的 data
        for(let i=0;i<n;i++){
            let clock = inArr[i+1].trim().split(' ')
            clockArr[i] = +(clock[0])*60 + +(clock[1])
        }
        clockArr.sort((a,b)=>a-b)
        for(let j=clockArr.length-1;j>=0;j--){
            if(clockArr[j] > (schoolTimeMax-x)) continue
            else {
                console.log(Math.floor(clockArr[j] / 60), clockArr[j] % 60)
                break
            }
        }
    }
})


发表于 2020-02-26 10:06:57 回复(0)
var line1=readline()
var arr=[]
for(var o=0;o<line1;o++){
    var line2=readline().split(' ')
    var temp=0
    temp=parseInt(line2[0])*60+parseInt([line2[1]])
    arr.push(temp)
}
var arrnew=arr.sort(function(a,b){
    return b-a
})
var long=readline()
var line3=readline().split(' ')
var time=parseInt(line3[0])*60+parseInt([line3[1]])
var starttime=time-parseInt(long)

var temptime=arrnew[0]
for(i=0;i<arrnew.length;i++){
    
    if(arrnew[i]<=starttime){
        temptime=arrnew[i]
        break
    }
}
var shi=Math.floor(temptime/60)
var fen=temptime%60
print(shi+' '+fen)
发表于 2019-08-26 14:59:56 回复(0)
为什么都没有JS的版本  希望多一点JS大佬上传一下JS版本的。
这个有点乱,但是能过。。转换来转换去的麻烦
var n=readline();
n=parseInt(n);
var arr=[];
var arr1=[];
for(i=0;i<n;i++)
{
    arr1[i]=readline();   
    arr[i]=arr1[i].split(" ");
}
var b=readline();
b=parseInt(b);
var time=readline();
time=time.split(" ");

time=parseInt(time[0]*60)+parseInt(time[1]);

var temp=0;
var a=[];
for(i=0;i<n;i++)
{
    a[i]=parseInt(arr[i][0]*60)+parseInt(arr[i][1]);   
    
}
for(i=0;i<n;i++)
{
    if((a[i]+b)<=time)
        {
            if(a[i]>a[temp])
            {temp=i;}
        }

}
console.log(arr1[temp]);

发表于 2018-04-04 17:02:00 回复(0)

热门推荐

通过挑战的用户

查看代码