笔试面试 现有课程信息表 course_info_tb(cid:课程ID,tag:视频类别,release_date:发布日期,duration:视频时长),示例数据如下: 用户观看记录表 play_record_tb(uid:用户ID,cid:课程ID,start_time:开始观看时间,end_time:结束观看时间,score:用户评分),示例数据如下: 请找到那些能让用户一遍接一遍重复观看的高回头率视频,输出被重复观看人次数。若某人对某视频只观看了一次,则不计为重复观看次数,如果某人对某视频观看了n次(n>1),则记为该视频重复观看次数+n。如果被重复观看次数一样大,则越晚发布的视频排名越靠前,每个视频的排名为排在他前面的视频个数+1。请找出被重复观看数排名前三的视频,输出这些视频的课程ID、被重复观看次数和排名。结果按排名升序。若被重复观看视频不足三个,按排名全部输出。示例输出如下: 注意:请用Mysql8兼容的SQL语法提交。
笔试面试 你有n个箱子,它们的高度分别为ai,你想要用它们做出一个尽可能长的阶梯。但是你对最长的阶梯长度不感兴趣,你只对其方案数感兴趣。 形式化地,给出长度为n的序列{ai},从中挑选出子序列{bi},满足对所有合法下标i,有bi<bi+1成立(即单调递增)(如果子序列{bi}长度为 1,亦视为满足此条件)。在这些子序列中,长度为最大长度的子序列有多少个? (子序列:某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。例如{2,3,5}是 {1,2,3,4,5}的子序列,而{2,1}和{1,6}不是。 我们认为两个子序列相同,当且仅当所有数都是从相同位置选出来的。而对于序列{1,2,2,6},选择第2个和第4个形成子序列{2,6},选择第 3个和第4个形成子序列{2,6},虽然形式相同但仍视为不同的序列,因为前者的2是原序列中第2个,后者的2是原序列中的第3个,并非相同位 置选出)