华为机考真题 -- 小明找位置

题目描述:

小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于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

C++源码:

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string line;
    getline(cin, line); // 读取第一行的学号序列
    vector<int> queue;

    stringstream ss(line);
    int num;
    while (ss >> num) {
        queue.push_back(num);
        if (ss.peek() == ',') ss.ignore();
    }

    int ming; // 小明的学号
    cin >> ming;

    // 使用二分查找法找到小明的位置
    auto it = lower_bound(queue.begin(), queue.end(), ming);
    int position = it - queue.begin() + 1; // 计算队列位置(从1开始)

    cout << position << endl;

    system("pause");
    return 0;
}
相关推荐
L_09071 小时前
【C++】高阶数据结构 -- 红黑树
数据结构·c++
A_nanda2 小时前
c# MOdbus rto读写串口,如何不相互影响
算法·c#·多线程
代码雕刻家3 小时前
2.4.蓝桥杯-分巧克力
算法·蓝桥杯
Ulyanov4 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲
听麟4 小时前
HarmonyOS 6.0+ 智慧出行导航APP开发实战:离线地图与多设备位置协同落地
华为·wpf·harmonyos
智者知已应修善业5 小时前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德5 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
diediedei5 小时前
模板编译期类型检查
开发语言·c++·算法
阿杰学AI6 小时前
AI核心知识78——大语言模型之CLM(简洁且通俗易懂版)
人工智能·算法·ai·语言模型·rag·clm·语境化语言模型
mmz12076 小时前
分治算法(c++)
c++·算法