OD C卷 - 小明找位置
文章目录
- 小明找位置
小明找位置
- 小朋友出操,按学号从小到大排成一列;
- 小明迟到了,快速帮他找到他应该排的位置;
- 时间复杂度不高于nlog(n); 学号为整数类型,队列规模<10000;
输入描述:
第一行输入已排成队列的小朋友的学号,以逗号分隔;
第二行输入小明的学号;
输出描述:
输出一个数字,代表小明的位置(从1开始);
示例1
输入:
93,95,97,100,102,123,155
110
输出:
6
思路:
- 二分法(在已有序的数组中,找到位置)
def searchInsert(nums, target):left, right = 0, len(nums) - 1while left <= right:middle = (left + right) // 2if nums[middle] < target:left = middle + 1elif nums[middle] > target:right = middle - 1else:return middlereturn right + 1nums = [int(x) for x in input().split(",")]
target = int(input())
print(searchInsert(nums, target)+1)