কম্পিউটার

সর্বোচ্চ – সর্বনিম্ন <=C++ এ K করতে অ্যারে থেকে সর্বনিম্ন অপসারণ


সমস্যা বিবৃতি

N পূর্ণসংখ্যা এবং K দেওয়া, ন্যূনতম সংখ্যক উপাদানগুলি খুঁজে বের করুন যা অপসারণ করা উচিত যেমন Amax - Amin <=K. উপাদানগুলি অপসারণের পরে, Amax এবং Amin বাকি উপাদানগুলির মধ্যে বিবেচনা করা হয়

উদাহরণ

যদি arr[] ={1, 3, 4, 9, 10, 11, 12, 17, 20} এবং k =4 হয় তাহলে আউটপুট হবে 5:

  • একটি অ্যারের শুরু থেকে 1, 3 এবং 4 সরান
  • অ্যারের শেষ থেকে 17 এবং 20 সরান
  • ফাইনাল অ্যারে হয়ে যায় {9, 10, 11, 12} যেখানে 12 – 9 <=4

অ্যালগরিদম

<পূর্ব>1. প্রদত্ত উপাদানগুলি সাজান 2। লোভী পন্থা ব্যবহার করে, সর্বোত্তম উপায় হল ন্যূনতম উপাদান বা সর্বাধিক উপাদানটি সরিয়ে ফেলা এবং তারপরে পরীক্ষা করা যে Amax - Amin <=K। অপসারণের বিভিন্ন সমন্বয় রয়েছে যা বিবেচনা করতে হবে।3। অপসারণের দুটি সম্ভাব্য উপায় থাকবে, হয় আমরা সর্বনিম্নটি ​​সরিয়ে ফেলি বা সর্বোচ্চটি সরিয়ে ফেলি। যাক (i…j) উপাদানগুলি অপসারণের পরে অবশিষ্ট উপাদানগুলির সূচী। প্রাথমিকভাবে, আমরা i=0 এবং j=n-1 দিয়ে শুরু করি এবং শুরুতে সরানো উপাদানের সংখ্যা 0।4। আমরা শুধুমাত্র একটি উপাদান সরিয়ে ফেলি যদি a[j]-a[i]>k, অপসারণের দুটি সম্ভাব্য উপায় হল (i+1…j) বা (i…j-1)। দুটির মধ্যে সর্বনিম্ন বিবেচনা করা হয়

উদাহরণ

#include #define MAX 100 useing namespace std;int dp[MAX][MAX];int remove Combinations(int *arr, int i, int j, int k) { if (i>=j) { ফেরত 0; } অন্যথায় যদি ((arr[j] - arr[i]) <=k) { ফেরত 0; } অন্যথায় যদি (dp[i][j] !=-1) { রিটার্ন dp[i][j]; } অন্যথায় যদি ((arr[j] - arr[i])> k) { dp[i][j] =1 + min(removeCombinations(arr, i + 1, j, k), রিমুভ কম্বিনেশন(arr, i, j - 1,k)); } রিটার্ন dp[i][j];}int removeNumbers(int *arr, int n, int k){ sort(arr, arr + n); memset(dp, -1, sizeof(dp)); রিটার্ন n ==1? 0 :রিমুভ কম্বিনেশন(arr, 0, n - 1,k);}int main() { int arr[] ={1, 3, 4, 9, 10, 11, 12, 17, 20}; int n =sizeof(arr) / sizeof(arr[0]); int k =4; cout <<"সরানো সর্বনিম্ন সংখ্যা =" < 

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট তৈরি করে

আউটপুট

সরানো সর্বনিম্ন সংখ্যা =5

  1. C++-এ অ্যারের GCD-কে k-এর গুণিতক করার জন্য ন্যূনতম ক্রিয়াকলাপ

  2. C++ এ একটি কো-প্রাইম অ্যারে তৈরি করতে ন্যূনতম সন্নিবেশ

  3. C++-এ অ্যারের সমস্ত উপাদান একই করতে ন্যূনতম ডিলিট অপারেশন।

  4. Python এ GCD বৃহত্তর করতে অ্যারে থেকে ন্যূনতম অপসারণ