2020秋招笔试依图科技编程题

2020秋招笔试编程题

依图科技算法岗

第三题

题目描述

一堆直线上有n个点,坐标都是整数
有m个区间,每个区间有两个端点left,right;left<=right,left,right都是整数,对于每个点,有多少区间包含这个点
输入描述:

第一行输入为T,表示有T组测试样例
每组测试样例
接下来一行有两个整数 n 和 m,表示有n个点和m个区间
接下来一行 n个正整数,空格分隔,表示n个点的坐标,记为a[1...n]
接下来m,每行两个整数表示一个区间

输出描述:

输出:对于每组测试样例,先输出一行“Case #d%:”表示第几组测试样例
对于改组测试样例的每个点,输出一行,包含一个整数,表示包含这个点的区间的个数

示例
输入

2
10 5
0 1 2 3 4 5 6 7 8 9
0 5
10 20
-5 -3
7 7
100 105
5 1
1 1 1 1 1
0 2

输出

Case #1:
1
1
1
1
1
1
0
1
0
0
Case #2:
1
1
1
1
1

Python代码

def get_data():
    data1 = list()
    arr_a = list()
    n,m = list(map(int,input().split()))
    data1.append(list(map(int,input().split())))
    for i in range(m):
        arr = list(map(int,input().split()))
        arr_a.append(arr)
    data1.append(arr_a)
    return data1
if __name__ == "__main__":
    T = int(input())
    data_s=list()
    for i in range(T):
        data_s.append(get_data())

    for data in data_s:
        print("Case #" + str(data_s.index(data)+1) + ":")
        for num in data[0]:
            c_n=0
            for range_n in data[1]:
                if num in range(range_n[0],range_n[1]+1):
                    c_n =c_n +1
            print(c_n)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值