समस्या
सूची से दोहराए गए मानों को हटाकर लौटाएँ, प्रत्येक मान की पहली उपस्थिति को उसकी मूल क्रम में रखते हुए।
remove_duplicates(numbers) को लागू करें।
इनपुट
numbers: पूर्णांकों की सूची।
आउटपुट
डुप्लिकेट के बिना सूची लौटाएँ।
सीमाएँ
0 ≤ लंबाई ≤ 100,000
उदाहरण
इनपुट:
numbers = [3, 1, 3, 2, 1]
अपेक्षित आउटपुट:
expected = [3, 1, 2]
इनपुट:
std::vector<long long> numbers = {3, 1, 3, 2, 1};
अपेक्षित आउटपुट:
std::vector<long long> expected = {3, 1, 2};
इनपुट:
long[] numbers = new long[] {3, 1, 3, 2, 1};
अपेक्षित आउटपुट:
long[] expected = new long[] {3, 1, 2};
व्याख्या
पहले 3, फिर 1, फिर 2 रखें; बाद के 3 और 1 हटा दिए जाते हैं: [3, 1, 2]।
इनपुट:
numbers = [7, 7, 7]
अपेक्षित आउटपुट:
expected = [7]
इनपुट:
std::vector<long long> numbers = {7, 7, 7};
अपेक्षित आउटपुट:
std::vector<long long> expected = {7};
इनपुट:
long[] numbers = new long[] {7, 7, 7};
अपेक्षित आउटपुट:
long[] expected = new long[] {7};
व्याख्या
केवल पहली 7 रहती है: [7]।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
हर value का first occurrence रखें और बाद के repeats ignore करें.
संकेत 2
Set या similar lookup से जल्दी पता चल सकता है कि value पहले देखी गई थी या नहीं.
संकेत 3
Original order of first occurrences preserve करें, sorted order नहीं.
अपेक्षित जटिलता
समय O(n), अतिरिक्त स्थान O(n)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।