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

题目描述:

小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于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;
}
相关推荐
xlq223223 小时前
22.多态(上)
开发语言·c++·算法
666HZ6663 小时前
C语言——高精度加法
c语言·开发语言·算法
sweet丶3 小时前
iOS MMKV原理整理总结:比UserDefaults快100倍的存储方案是如何炼成的?
算法·架构
D_evil__3 小时前
[C++高频精进] 并发编程:线程基础
c++
云里雾里!4 小时前
力扣 209. 长度最小的子数组:滑动窗口解法完整解析
数据结构·算法·leetcode
Mr_WangAndy4 小时前
C++17 新特性_第二章 C++17 语言特性_std::any和string_view
c++·string_view·c++40周年·c++17新特性·c++新特性any
CoderYanger5 小时前
递归、搜索与回溯-穷举vs暴搜vs深搜vs回溯vs剪枝:12.全排列
java·算法·leetcode·机器学习·深度优先·剪枝·1024程序员节
憨憨崽&5 小时前
进击大厂:程序员必须修炼的算法“内功”与思维体系
开发语言·数据结构·算法·链表·贪心算法·线性回归·动态规划
水天需0106 小时前
C++ 三种指针转换深度解析
c++
chem41116 小时前
C 语言 函数指针和函数指针数组
c语言·数据结构·算法