हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी को एकमात्र तर्क के रूप में लेता है।
सरणी को पहले क्रमबद्ध किया जाता है और फिर तत्वों की किसी भी मनमानी संख्या से घुमाया जाता है। हमारे फ़ंक्शन को सरणी में सबसे छोटा तत्व ढूंढना चाहिए और उस तत्व को वापस करना चाहिए।
एकमात्र शर्त यह है कि हमें इसे रैखिक समय जटिलता से कम में करना होगा, शायद बाइनरी सर्च एल्गोरिदम के कुछ हद तक संशोधित संस्करण का उपयोग करना।
उदाहरण के लिए -
यदि इनपुट ऐरे है -
const arr = [6, 8, 12, 25, 2, 4, 5];
तब आउटपुट 2 होना चाहिए।
उदाहरण
निम्नलिखित कोड है -
const arr = [6, 8, 12, 25, 2, 4, 5]; const findMin = (arr = []) => { let temp; let min = 0; let max = arr.length - 1; let currentMin = Number.POSITIVE_INFINITY; while (min <= max) { temp = (min + max) >> 1; currentMin = Math.min(currentMin, arr[temp]); if (arr[min] < arr[temp] && arr[temp] <= arr[max] || arr[min] > arr[temp]) { max = temp - 1; } else if (arr[temp] === arr[min] && arr[min] === arr[max]) { let guessNum = arr[temp]; while (min <= max && arr[min] === guessNum) { min++; } } else { min = temp + 1; } } return currentMin; }; console.log(findMin(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
2