当前位置:   article > 正文

小明找位置【华为OD机试JAVA&Python&C++&JS题解】

小明找位置

一. 题目-小明找位置

小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。
算法复杂度要求不高于nLog(n);学号为整数类型,队列规模<=10000;
输入描述:
1、第一行:输入已排成队列的小朋友的学号(正整数),以”,”隔开;
例如:93 95 97 100 102 123 155
2、第二行:小明学号,如110;
输出描述:

输出一个数字,代表队列位置(从1开始)。

例如:

6

补充说明:

示例1

输入:

93 95 97 100 102 123 155
110
输出:

6

二.解题思路

这个问题可以通过二分查找来解决。由于已经按学号从小到大排成一列,我们可以使用二分查找找到小明应该插入的位置。具体的解题思路如下:

  1. 将输入的已排队列的小朋友学号列表转化为一个有序的数组(可以使用列表等数据结构)。
  2. 获取小明的学号。
  3. 使用二分查找,在有序数组中找到第一个大于等于小明学号的位置。
  4. 输出该位置即为小明应该排队的位置。

三.题解代码

Python题解代码

w
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/322715
    推荐阅读
    相关标签
      

    闽ICP备14008679号