欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 华为机考真题 -- 小明找位置

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

2025/5/14 5:36:12 来源:https://blog.csdn.net/qq_25360769/article/details/140307249  浏览:    关键词:华为机考真题 -- 小明找位置

题目描述:

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

#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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词