2019今日头条研发岗笔试---编程题《直播爱好者》

小明在抖音关注了N个主播,每天主播的开播时间是固定的,分别在si时刻开始直播,ti时刻结束。小明无法同时观看两个主播的直播。一天被分成了M个时间单位。请问小明每天最多能完整观看多少场直播。
输入描述:
第一行一个整数,代表N
第二行一个整数,代表M
第三行空格分割的N*2个整数,代表s,t
输出描述:
一行一个整数,表示答案

示例1:输入

3
10
0 3 3 7 7 0

输出

3

示例2:输入

3
10
0 5 2 7 6 9

输出

2

分析:首先建立二维数组,按照开播时间排序,示例1得[[0,5],[2,7],[6,9]],第一组不一定是最开始看的,因为有可能第一组时间过长。应包含从第2,3,4,5…..组开始看的情况,选出结果最大值。

N=3
M=10
st=[[0,5],[2,7],[6,9]]
resm=[0]*len(st)
if st[N-1][1]==0:
    st[N-1][1]=M
end=st[N-1][1]
for m in range(N):
  res=1
  endtime=st[m][1]
  i=0
  while(endtime<end):
    i=i+1
    if i>=N: break
    if st[i][0]>=endtime:
           endtime=st[i][1]
           #print(i+1)
           res=res+1
  resm[m]=res
#print(resm)
print("最多能完整观看"+str(max(resm))+"个直播")
    原文作者:想名字真麻烦zzZ
    原文地址: https://www.jianshu.com/p/2bf90309467b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞