Microsoft OA 面试真题解析:Missing Ranges in a Sorted List 缺失区间字符串

50次阅读
没有评论

You are given a sorted list of distinct integers from 0 to 99, for instance [0, 1, 2, 50, 52, 75].

Your task is to produce a string that describes the numbers missing from the list; in this case "3,49,51,53-74,76-99".

这道题要求你在一个已排序、互不重复的整数列表中,找出 0 到 99 之间所有缺失的数字,并将连续缺失的部分合并成区间字符串输出。常见做法是先把前一个数字和当前数字之间的空缺扫描出来:如果只差 1 个数,就直接输出该数;如果缺失多个数,就输出起止区间如 53-74。最后别忘了处理列表开头从 0 开始的缺口,以及结尾到 99 的缺口。整题核心是一次线性遍历,时间复杂度 O(n),不需要额外复杂数据结构。

正文完
 0