সমস্যা বিবরণ
একটি অ্যারে দেওয়া আছে। এর এলিমেন্টগুলো পরিবর্তন করে স্ট্রিক্টলি ইনক্রিজিং অর্ডারে আনা হবে ন্যূনতম পরিবর্তন দিয়ে।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int remove_min(int arr[], int n) {
int LIS[n], len = 0;
for (int i = 0; i < n; i++) LIS[i] = 1;
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (arr[i] > arr[j] && (i-j) <= (arr[i]-arr[j])) {
LIS[i] = max(LIS[i], LIS[j] + 1);
}
}
len = max(len, LIS[i]);
}
return n - len;
}
int main() {
int arr[] = {1, 2, 6, 5, 4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << remove_min(arr, n);
return 0;
}
আউটপুট
2