小红和朋友们比身高,一共有 n 个朋友,每个朋友的身高是 h_i ,小红的身高为 H ,一共有 m 阶楼梯,第 i 阶楼梯的高度是 s_i ,第 i 个朋友会站在第 p_i 阶楼梯上,小红想知道,如果小红可以自由选择站在第几阶楼梯上,她最多可以比多少朋友高。
一行三个整数 n , m , H ,表示朋友的个数,楼梯的个数,小红的身高。 一行 n 个整数 h_i ,表示每个朋友的身高。 一行 n 个整数 p_i ,表示每个朋友站在第几阶楼梯上。 一行 m 个整数 s_i ,表示每个楼梯的高度。 1 ≤ n, m ≤ 10^5 1 ≤ H, h_i, s_i ≤ 10^6 1 ≤ p_i ≤ m
输出一个整数,表示小红可以比多少朋友高。
3 4 4 3 5 7 1 2 2 1 2 3 3
1
考点:排序 · 二分
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:排序
先用 O(n log n) 排序把无序变有序,后续处理往往就简单了。
思路框架(排序 通法 · 非本题专属)
实现要点:在 C++ 中用 std::sort,Python 用 sorted();注意自定义比较函数的严格弱序。
复杂度:时间 O(n log n) | 空间 O(log n) ~ O(n)
该范式的通法易错点
对照本题
样例 1:输入 3 4 4 / 3 5 7 / 1 2 2 / 1 2 3 3 → 输出 1
小红站在最高的楼梯上,高度为 4 + 3 = 7。
第一个朋友高度为 3 + 1 = 4,第二个朋友高度为 5 + 2 = 7,第三个朋友高度为 7 + 2 = 9。
小红只能比第一个朋友高。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2023年秋招-京东-技术通用岗位-第六批笔试。