背景:
我最初是在昨晚发布此问题,并因其模糊性而遭到强烈反对。从那以后,我不仅就问题的措辞,而且就其复杂性(不是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
5. 11395591741893085201244471432361149120556162127165124233106210135320813701207315110246262072142253419410247129611737243218190203156364518617019864222241772384813041175126193134141008211877147192451101968789181153241861671712710899168232150138131195104411520078178584419739178522066640145139388863199146248518022492149187962968112157173132551631441367921221229161208324623423922615218321511111211121975723721911614865611197515810239015418422813742128176166949324015823124214033541416719143625021276351260183210916421672722015510117218224913320919223553222021036912321791591225112512304920418584216981883128105227213107223142169741601798025
- Missing number => 71
Test Data:
Problem 1: 6966410819610521530291368349682309217598570592011872022482018312220241246911298913317419721920718217313718080857232177134232481551020010112519172652031631113791105122116319458153244261582135510090235116139611641267691141679612215222660112127421321901862041827745106522437208362062271684640438174315738135641171699510421015199128239881442242382361212317163149232839233823418915447142162771412092492141987521710917122354156131466216515061812273140130240170972181176179166531781851152178225242192445147229991613515911122223419187862169312013124150672371432051192510724356172282471951381601241518410318414211212870941111833193145123245188102
Problem 2: 14883423514241100511108716621733193121019716422221117630156992324819917158961372915140456921857371883175910701891021877194529067191198226669314940125152431532281961078111412624224113912011621641182322612016512820395482371382385363922471472312072131791925510478122073722091352412491272395020016194195116236186596116374117841971602259812110612913254255615723013185162206245183244806417777130181492211412431591541398312414414582421741482461036761192272120204114346205712198918190242184229286518011471231585109384415021021415522313136146178233133168222201785172212108182276835832151134861116216716910511560240392170208215112173234136317520219
Problem 3: 1342319526198176611201701741948297621621214122224383105148103846820718319098731271611601912137231471099223812820157162671720663139410066179891663131117186249133125172622813593129302325881203242806043154161082051916986441859042111711241041590221248711516546521992257224020174102234138991752117924457143653945184113781031116471120421331506424717816813220023315511422019520918114070163152106248236222396919620277541101222101232171732231122301511263822375920856142187182152451585137352921848164219492411071228936130762461191564196185114910118922611881888513917712153146227193235347537229322521516718014542248813617191531972142714505519240144
Problem 4: 2492402092341949619347401841041875198202182031161577311941257285491521667219229672211881621592451432318618560812361201172382071222352271769922013259915817462189101108056130187233141312197127179205981692121101632221732337196969131822110021512524417548627103506114978204123128181211814236346515430399015513513311152157420112189119277138882021676618323919018013646200114160165350631262167910238144334214230146151171192261653158161213431911401452461159313720613195248191505228186244583455139542924222112226148941682087115610915344641782142472102436810828123731134321131241772242411722251997612923295223701069721187182171471055710784170217851
N
,而不仅仅是250
?/那232
问题呢?所有可能性还是任何一种?我知道您知道该问题,但在问题中不清楚。/如果这是最快的代码,则必须有一种测量它们的方法。当然,在超级计算机上运行不同于在旧计算机上运行。/因为没有人这么说,-欢迎来到PPCG!
N
到1000或