समस्या
सूची में 0, 1, …, n में से n अलग-अलग संख्याएँ हैं, यानी इस श्रेणी में से ठीक एक संख्या गायब है। उसे खोजें। (संकेत: अपेक्षित योग और वास्तविक योग की तुलना करें।)
missing_number(numbers) को लागू करें।
इनपुट
numbers: 0 से n तक की n अलग-अलग संख्याएँ।
आउटपुट
गुम संख्या लौटाएँ।
सीमाएँ
0 ≤ n ≤ 100,000
उदाहरण
इनपुट:
numbers = [3, 0, 1]
अपेक्षित आउटपुट:
expected = 2
इनपुट:
std::vector<long long> numbers = {3, 0, 1};
अपेक्षित आउटपुट:
long long expected = 2;
इनपुट:
long[] numbers = new long[] {3, 0, 1};
अपेक्षित आउटपुट:
long expected = 2;
व्याख्या
n = 3, तो श्रेणी 0–3 है; 2 गायब है।
इनपुट:
numbers = [0]
अपेक्षित आउटपुट:
expected = 1
इनपुट:
std::vector<long long> numbers = {0};
अपेक्षित आउटपुट:
long long expected = 1;
इनपुट:
long[] numbers = new long[] {0};
अपेक्षित आउटपुट:
long expected = 1;
व्याख्या
n = 1 और श्रेणी 0–1 है; 1 गायब है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Numbers को 0 से n तक की पूरी range match करनी चाहिए, बस एक missing value छोड़कर.
संकेत 2
Complete range का total और actual list का total compare करें.
संकेत 3
उस case पर ध्यान दें जहाँ missing value 0 या n हो.
अपेक्षित जटिलता
समय O(n), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।