배경:
나는 지난 밤 에이 질문을 처음 게시했으며 그 모호함에 반발을 받았다. 그 후 문제의 말뿐만 아니라 그 복잡성 (O (1)이 아님)에 관해 많은 직원들과상의했습니다. 이 프로그래밍 문제는 아마존 인터뷰 질문에서 악의적 인 스핀입니다.
의문:
임의로 연결된 정수 [0, 250), 0에서 250 사이의 문자열이 주어지면 시퀀스에 하나의 숫자가 없습니다. 당신의 임무는이 누락 된 숫자를 계산하는 프로그램을 작성하는 것입니다. 시퀀스에 다른 것 외에 다른 누락 된 숫자는 없으며, 이것이이 문제를 그렇게 어렵게 만들고 계산을 어렵게합니다.
아래의 예제 1 및 2와 같은 작은 문자열 에서이 문제를 직접 수행하는 것은 매우 쉽습니다. 반대로 3 자리 또는 4 자리 숫자가 포함 된 엄청나게 큰 데이터 집합에서 누락 된 숫자를 계산하는 것은 매우 어려울 것입니다. 이 문제의 기본 개념은이 프로세스를 수행 할 프로그램을 구성하는 것입니다.
중요한 정보:
지난 밤 에이 문제를 게시했을 때 다소 혼란스러워 보이는 한 가지는 정확히 누락 된 숫자가 정의 된 것입니다. 누락 된 숫자는 위에 지정된 범위의 INSIDE 숫자입니다. 반드시 숫자는 아닙니다. 예제 3에서는 시퀀스에 표시 되더라도 누락 된 숫자가 9임을 알 수 있습니다. DIGIT 9가 일련의 [0, 30)에 표시되는 위치는 "9", "19"및 "29"입니다. 목표는 이들을 구별하고 9가 누락 된 NUMBER임을 발견하는 것입니다 (예 3 제외). 다시 말해, 까다로운 부분은 어떤 숫자의 시퀀스가 완전하고 다른 숫자에 속하는지를 찾는 데 있습니다.
입력:
입력은 0에서 249 사이의 정수 또는 0에서 250 사이의 정수 (즉, [0, 250))를 포함하는 문자열 S입니다. 위에서 언급 한 바와 같이, 이들 정수는 스크램블되어 랜덤 시퀀스를 생성한다. 분리 문자 ( "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 또는 10000으로 올릴 수 있습니다.