九章算法 | Facebook 面试题:Digital Coverage
撰文 | JZ
专栏 | 九章算法
题目描述
给出一些区间,问覆盖次数最多的数是多少,如果有多个,输出最小的那个数。
思路点拨
由于只查询一次,故可以使用前缀和的方式来记录区间的覆盖范围,然后O(n)扫一次,整体复杂度O(n)。
考点分析
本题用到一个小技巧,对于一段区间[start, end]加上一个数c,可以f[start] += c, f[end + 1] -= c, 这样再求前缀和,就能达到想要的效果。
九章参考程序
https://www. jiuzhang.com/solution/d igital-coverage/