कहें कि एक सूची है। सूची में प्रत्येक आइटम में एक अद्वितीय आईडी है।सूची में सबसे कम अप्रयुक्त अद्वितीय आईडी ढूंढना
List [5, 2, 4, 3, 1]
जब मैं इस सूची से कोई आइटम हटाता हूं, तो आइटम से अद्वितीय आईडी इसके साथ जाती है।
List [5, 2, 3, 1]
अब कहें कि मैं सूची में एक और आइटम जोड़ना चाहता हूं, और इसे सबसे कम न्यूनतम अद्वितीय आईडी देना चाहता हूं।
सूची में कोई नया आइटम जोड़ते समय सबसे कम अद्वितीय आईडी प्राप्त करने का सबसे आसान तरीका क्या है?
यहां प्रतिबंध है हालांकि: अगर मैं किसी आइटम को हटाते समय किसी अन्य आइटम की अनूठी आईडी को पुन: असाइन नहीं करता तो मैं इसे पसंद करूंगा।
मुझे एहसास है कि अद्वितीय आईडी को ढूंढना आसान होगा यदि मैंने अनन्य आईडी 5 को अनन्य आईडी 4 को दोबारा हटा दिया 4। फिर मुझे सूची की लंबाई (5) मिल सकती है और अद्वितीय आइटम के साथ नया आइटम बना सकता है उस नंबर के साथ आईडी।
तो क्या कोई और तरीका है, जिसमें पूरी सूची के माध्यम से पुनरावृत्ति शामिल नहीं है?
संपादित करें:
भाषा जावा है, लेकिन मुझे लगता है मैं एक सामान्य एल्गोरिथ्म के लिए देख रहा हूँ लगता है।
आप किस भाषा का उपयोग कर रहे हैं? इसके अलावा: इस मामले में 'अनोखा पहचानकर्ता' टैग का आपका उपयोग शायद गलत है। क्या आप देख सकते हैं कि कोई और टैग है जो आपको बेहतर सेवा देगा? – Tobiasopdenbrouw
एक प्राथमिकता कतार बिना किसी सीखने के लिए एक महान डेटा संरचना है, और समस्या का एक अच्छा समाधान है। मैं सोच रहा हूं कि, अगर सिर्फ एक साधारण सूची काम करेगी। क्या कोई विशेष कारण है कि आपको यह सुनिश्चित करने के बजाय _lowest_ की आवश्यकता क्यों है कि आप छेद का पुन: उपयोग करें? – Dolphin