একটি অ্যারে দেওয়া থাকলে, একটি পার্টিশন পয়েন্ট বের করতে হবে যেন সেটির বামপাশের সব এলিমেন্ট সেটি থেকে ছোট এবং ডানপাশের সব এলিমেন্ট সেটি থেকে বড়।
পদ্ধতি
- অ্যারে ইনিশিয়ালাইজ করুন।
- প্রতিটি ইন্ডেক্স i জন্য:
- 0 থেকে i-1 পর্যন্ত সব এলিমেন্ট < arr[i] কিনা চেক করুন।
- i+1 থেকে n-1 পর্যন্ত সব এলিমেন্ট > arr[i] কিনা চেক করুন।
- দুটি শর্ত পূরণ হলে arr[i] রিটার্ন করুন।
- না পাওয়া গেলে -1 রিটার্ন করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int findPartitionElement(int arr[], int n) {
for (int i = 0; i < n; i++) {
bool ok = true;
for (int j = 0; j < i; j++)
if (arr[j] >= arr[i]) { ok = false; break; }
for (int j = i+1; j < n; j++)
if (arr[j] <= arr[i]) { ok = false; break; }
if (ok) return arr[i];
}
return -1;
}
int main() {
int arr[] = {4, 3, 5, 6, 7};
cout << findPartitionElement(arr, 5) << endl;
return 0;
}
আউটপুট
5