美团打算选调n名业务骨干到n个不同的业务区域,本着能者优先的原则,公司将这n个人按照业务能力从高到底编号为1~n。编号靠前的人具有优先选择的权力,每一个人都会填写一个意向,这个意向是一个1~n的排列,表示一个人希望的去的业务区域顺序,如果有两个人同时希望去某一个业务区域则优先满足编号小的人,每个人最终只能去一个业务区域。 例如3个人的意向顺序都是1 2 3,则第一个人去1号区域,第二个人由于1号区域被选择了,所以只能选择2号区域,同理第三个人只能选择3号区域。 最终请你输出每个人最终去的区域。
输入第一行是一个正整数n,表示业务骨干和业务区域数量。(n≤300) 接下来有n行,每行n个整数,即一个1~n的排列,第i行表示i-1号业务骨干的意向顺序。
输出包含n个正整数,第i个正整数表示第i号业务骨干最终去的业务区域编号。
5 1 5 3 4 2 2 3 5 4 1 5 4 1 2 3 1 2 5 4 3 1 4 5 2 3
1 2 5 4 3
考点:模拟
数据规模 n ≤ 300 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
按编号从小到大依次满足意向,用「已占用区域」标记,遇到已占用的就跳到意向里下一个可用区域。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1
5 / 1 5 3 4 2 / 2 3 5 4 1 / 5 4 1 2 3 / 1 2 5 4 3 / 1 4 5 2 31 2 5 4 3解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:美团2023校招技术第4场编程题。