3
失踪人数修订
背景: 我最初是在昨晚发布此问题,并因其模糊性而遭到强烈反对。从那以后,我不仅就问题的措辞,而且就其复杂性(不是O(1))咨询了许多人员。这个编程问题是对亚马逊面试问题的一个恶性循环。 题: 给定一个字符串,其中包含0至250个互斥的随机串联整数[0,250),序列中缺少一个数字。您的工作是编写一个程序,该程序将计算此丢失的数字。除了一个之外,序列中没有其他遗漏的数字,这就是使此问题如此困难,甚至可能使计算困难的原因。 手动在较小的String上完成此问题,例如下面的示例1和2显然很容易。相反,在涉及三位数或四位数数字的庞大数据集上计算缺失数将非常困难。该问题背后的想法是构造一个程序,它将为您执行此过程。 重要信息: 昨晚我发布此问题时,看起来很困惑的一件事是:确切的数字定义为。缺少的数字是上述指定范围内的数字;不一定是数字。在示例3中,您会看到丢失的数字为9,即使它出现在序列中。DIGIT 9将在三个[0,30)系列中出现3个位置:“ 9”,“ 19”和“ 29”。您的目标是对它们进行区分,并发现9是缺少的NUMBER(在示例3中)。换句话说,棘手的部分在于找出哪些数字序列是完整的,哪些序列属于其他数字。 输入: 输入是字符串S,包含从0到249(含)或0到250(不含)(即[0,250))的整数。如上所述,将这些整数加扰以创建随机序列。没有分隔符(“ 42、31、23、44”)或填充0(003076244029002);问题完全与示例中描述的相同。保证实际问题中只有一种解决方案。不允许使用多种解决方案。 获奖标准: 谁拥有最快和最低的内存使用率将是赢家。如果发生时间中断的奇迹,则将较低的内存用于时间限制器。如果可以,请列出Big O! 例子: 示例1和2的范围为[0,10) 示例3和4的范围为[0,30) (示例1-4仅用于演示。您的程序无需处理它们。) 示例5的范围为[0,250) 1. 420137659 - Missing number => 8 2. 843216075 - Missing number => 9 3. 2112282526022911192312416102017731561427221884513 - Missing number => 9 4. 229272120623131992528240518810426223161211471711 - Missing number => 15 …