काम बस एक वेनिला -1 डी सरणी के सिर पर एक तत्व डालने के लिए है, तो मुझे लगता है कि काफी अपने ही एकमात्र विकल्प यह हे (एन) दृष्टिकोण है:
for(var i = ary.length; i > 0; i--) {
ary[i] = ary[i - 1];
}
ary[0] = value;
उद्देश्य के लिए है सरणी की शुरुआत में तत्वों को सम्मिलित करने के संचालन को अनुकूलित करें (जैसा कि, उस ऑपरेशन को बहुत करने की आवश्यकता है), आप जो कर सकते हैं वह एक डेटा संरचना तैयार करता है जो प्रारंभ और अंत में खाली स्थान के साथ एक सरणी बनाए रखता है, और पहली और आखिरी आबादी वाले आइटम के स्थानों:
_ _ b d f a _ _
0 1 2 3 4 5 6 7
यह आपको ओ (1) अमूर्त समय में अपनी डेटा संरचना की शुरुआत और अंत में वस्तुओं को सम्मिलित करने और हटाने की अनुमति देता है, बस शुरुआत या अंत के सूचकांक को अद्यतन करके और अगले खाली स्थान में मान डालने से, हालांकि सबसे खराब- केस स्पेस उपयोग 2 एन है।
जब सरणी की शुरुआत या अंत भर जाता है, तो पिछले एक के आकार के साथ एक नई सरणी बनाएं, और पुराने सरणी के मानों को नए के बीच में कॉपी करें।
मुझे नहीं पता कि यह आपके साक्षात्कार प्रश्न की बाधाओं के भीतर फिट बैठता है, लेकिन कई साक्षात्कार प्रश्न समस्याओं के बारे में सोचने की आपकी क्षमता का परीक्षण करने और एल्गोरिदम के बारे में आपके ज्ञान का परीक्षण करने और एक सही उत्पादन के बारे में कम जानकारी के बारे में अधिक हैं जवाब।
तो तुम के बाद साक्षात्कार .. – Runcorn
हालांकि अनुसंधान एवं विकास जाना नहीं था अगर तुम तो सरणी के समाप्त करने के लिए पहले तत्व जोड़ सरणी के मूल आदेश को संरक्षित करने की जरूरत नहीं है और उस प्रतिलिपि के बाद नई स्थिति – Spektre
@ फ़ज़ी ट्री मैंने नई इकाई को 'अनशिफ्ट()' देखा जो हमें चाहिए, लेकिन साक्षात्कारकर्ता द्वारा इनबिल्ट फ़ंक्शन की अपेक्षा नहीं की गई थी। –