हमें एक फ़ंक्शन लिखना है जो उस पहले तत्व का सूचकांक लौटाता है जो सरणी में कम से कम दो बार प्रकट होता है। यदि कोई तत्व एक से अधिक बार प्रकट नहीं होता है, तो हमें -1 लौटाना होगा। शर्त यह है कि हमें इसे निरंतर स्थान में करना है (यानी, अतिरिक्त मेमोरी का उपयोग किए बिना)।
आइए इस समस्या का समाधान तैयार करते हैं। हम सरणी पर पुनरावृति करने के लिए फॉर लूप का उपयोग करेंगे और डुप्लिकेट की जाँच के लिए Array.prototype.lastIndexOf() मेथड का उपयोग करेंगे।
उदाहरण
const firstDuplicate = arr => {
for (let i = 0; i < arr.length; i++) {
if (arr.lastIndexOf(arr[i]) !== i) {
return i;
}
}
return -1;
}
console.log(firstDuplicate([3, 5, 6, 8, 5, 3])); // 0
console.log(firstDuplicate([0, 1, 2, 3, 4, 4, 5])); // 4
console.log(firstDuplicate([0, 1, 1, 2, 3, 4, 4, 5])); // 1
console.log(firstDuplicate([0, 1, 2, 3, 4, 9, 5])); // -1
आउटपुट
कंसोल में आउटपुट होगा:
0 4 1 -1