这道题的正解是 树状数组,但是我们用朴素解法 二重循环枚举 也能在考试时拿到一定的分数。
题意:给定数组 record 和阈值 threshold,统计满足 i<j 且 record[i]−record[j]>threshold 的下标对个数(严重性能逆序对)。
朴素做法:两重循环枚举所有 0≤i<j<n,若 record[i]−record[j]>threshold,答案加 1。
小数据可以过;当 n 达到 105 时,O(n2) 会超时,需要后面的树状数组做法。
某互联网公司的系统工程师小明正在为语音合成服务开发日志分析工具。每次合成请求都会记录一个实时率 RTF,其定义为合成耗时除以目标文本音频时长;RTF 越大,表示该次请求性能越差。为了便于存储,日志中实际保存的是 RTF 乘以 100 后取整的数值,一段时间内的这些数值按请求发生的时间顺序组成数组 record。
运维团队希望通过统计特殊下标对来定位性能退化。对于下标 i 和 j,若满足 0≤i<j<n 且 record[i]>record[j],则称 (i,j) 为一个“性能逆序对”。如果还满足 record[i]−record[j]>threshold,则称 (i,j) 为一个“严重性能逆序对”。
请帮助小明完成统计功能:给定数组 record 和整数 threshold,输出其中严重性能逆序对的总数。
约束条件:
record 的长度 n 满足 0<n≤100000。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册