''' 描述 数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数。 输入 第一行包括两个整数:点的总数n,查询的次数m。 第二行包含n个数,为各个点的坐标。 以下m行,各包含两个整数:查询区间的左、右边界a和b。 输出 对每次查询,输出落在闭区间[a, b]内点的个数。 ''' line1=input().split() num_point=int(line1[0]) num_query=int(line1[1]) line2=input().split() int_list=[int(_) for _ in line2] # 对int_list进行升序排列 for i in range(num_point): for j in range(num_point-i-1): if int_list[j]>int_list[j+1]: temp=int_list[j] int_list[j]=int_list[j+1] int_list[j+1]=temp output=[] for k in range(num_query): temp_line=input().split() left=int(temp_line[0]) right=int(temp_line[1]) # count = 0 # 在排序好的序列中找到第一个大于或者等于left,并且小于等于right的数值,记录其下标 start_index # 同时count计数+1 # 如果当前数值等于right,则count+1,停止计数 # 找到第一个大于或者等于right的值 count=0 start_index=len(int_list) for i,elem in enumerate(int_list): if int_list[i]>=left and int_list[i]<right: start_index=i count+=1 break # print(start_index,len(int_list)) for j in range(start_index+1,len(int_list)): # print('j',j) # print(int_list[j],left,right) if int_list[j]>left and int_list[j]<=right: # print('true') count+=1 else: break output.append(count) # print(output,type(output[0])) for result in output: print(result)
python区间中的数字统计
最新推荐文章于 2024-08-18 14:05:32 发布