একটি আনসর্টেড পূর্ণসংখ্যা অ্যারে দেওয়া থাকলে, সেটি থেকে ডিস্টিংক্ত (অনন্য) সর্বোচ্চ এবং দ্বিতীয় সর্বোচ্চ উপাদান বের করতে হবে।
ইনপুট-১
N = 5, A[] = {2, 2, 1, 3, 4}
আউটপুট
4 3
ইনপুট-২
N = 4, A[] = {1,3,3,2}
আউটপুট
3 2
সমাধানের পদ্ধতি
- দুই ভেরিয়েবল
max = INT_MIN,s_max = INT_MINনিন। - অ্যারে ট্রাভার্স করুন।
- যদি বর্তমান এলিমেন্ট
max-এর চেয়ে বড় হয়,s_max = max; max = arr[i]। - অন্যথায়, যদি বর্তমান এলিমেন্ট
s_max-এর চেয়ে বড় হয় এবংmax-এর সমান নয় হয়, তবেs_max = arr[i]। - শেষে
s_maxযদিINT_MINথাকে, তবে -1 প্রিন্ট করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void maxAndSecondMax(int *arr, int size) {
int max = INT_MIN, s_max = INT_MIN;
for (int i = 0; i < size; ++i) {
if (arr[i] > max) {
s_max = max;
max = arr[i];
} else if (arr[i] > s_max && arr[i] != max) {
s_max = arr[i];
}
}
if (s_max == INT_MIN) s_max = -1;
cout << max << " " << s_max;
}
int main() {
int N = 6, A[N] = {1,3,2,5,6,3};
maxAndSecondMax(A, N);
return 0;
}
আউটপুট
6 5