কম্পিউটার টিউটোরিয়াল

C++-এ আনসর্টেড অ্যারেতে ম্যাক্স এবং সেকেন্ড ম্যাক্স বের করা

একটি আনসর্টেড পূর্ণসংখ্যা অ্যারে দেওয়া থাকলে, সেটি থেকে ডিস্টিংক্ত (অনন্য) সর্বোচ্চ এবং দ্বিতীয় সর্বোচ্চ উপাদান বের করতে হবে।

ইনপুট-১

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
  1. C++-এ ট্রির ম্যাক্সিমাম ডেপথ বা হাইট বের করার প্রোগ্রাম

  2. সি++ প্রোগ্রাম: অ্যারেতে প্রথম, দ্বিতীয় ও তৃতীয় সর্বনিম্ন উপাদান খুঁজে বের করা

  3. C++ প্রোগ্রাম: আনসোর্টেড দুটি অ্যারের ইউনিয়ন ও ইন্টারসেকশন

  4. জাভায় অনসোর্টেড ইন্টিজার অ্যারেতে অনুপস্থিত পজিটিভ নম্বর খুঁজে বের করা