আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একমাত্র আর্গুমেন্ট হিসেবে ইন্টিজারগুলোর একটি অ্যারে নেবে।
অ্যারেটি প্রথম সর্টেড এবং তারপর যেকোনো произবছন্ন সংখ্যক এলিমেন্ট দ্বারা রোটেট করা। আমাদের ফাংশনটি অ্যারেতে সবচেয়ে ছোট এলিমেন্ট বের করে রিটার্ন করবে।
একমাত্র শর্ত হলো এটি লিনিয়ার টাইম কমপ্লেক্সিটির চেয়ে কমে করতে হবে, হয়তো বাইনারি সার্চ অ্যালগরিদমের একটি মডিফাইড ভার্সন ব্যবহার করে।
উদাহরণস্বরূপ:
যদি ইনপুট অ্যারে হয়:
const arr = [6, 8, 12, 25, 2, 4, 5];
তাহলে আউটপুট হবে ২।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
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