কম্পিউটার

C# ব্যবহার করে টপডাউন পদ্ধতি ব্যবহার করে কীভাবে সর্বনিম্ন পদক্ষেপ বাস্তবায়ন করবেন?


MinimumStepstoOneTopdownApproach ইনপুট হিসাবে পূর্ণসংখ্যা n এবং একটি পূর্ণসংখ্যা অ্যারে নেয়। প্যারামিটার n এ উপাদানের মোট সংখ্যা রয়েছে। প্রাথমিক অবস্থা n 1 এর সমান কিনা তা পরীক্ষা করে। যদি n 1 এর সমান হয় তবে 0 ফেরত দিন। op1,op2 এবং op3-কে সর্বোচ্চ মান শুরু করুন। যদি n mod 3 0 এর সমান হয় তবে MinimumStepstoOneTopdownApproach কে বারবার কল করুন এবং op1-এ বরাদ্দ করুন, যদি n mod 3 0 এর সমান হয় তবে মিনিমমস্টেপস্টোঅন টপডাউন অ্যাপপ্রোচকে রিকার্সিভভাবে কল করুন এবং op2-এ বরাদ্দ করুন অন্যথায় 1 দ্বারা n বিয়োগ করুন এবং মিনিমামস্টপস্টপডাউন এ কল করুন। ন্যূনতম তিনটি উপাদান গণনা করতে এবং dp অ্যারে থেকে মান ফেরত দিতে অবশেষে Math.Min-এ কল করুন

সময় জটিলতা − O(N)

মহাকাশ জটিলতা − O(N)

উদাহরণ

public class DynamicProgramming{
   public int MinimumStepstoOneTopdownApproach(int n, int[] dp){
      if (n == 1){
         return 0;
      }
      int op1, op2, op3;
      op1 = int.MaxValue; op2 = int.MaxValue; op3 = int.MaxValue;
      if (n % 3 == 0){
         op1 = MinimumStepstoOneTopdownApproach(n / 3, dp);
      }
      if (n % 2 == 0){
         op2 = MinimumStepstoOneTopdownApproach(n / 2, dp);
      }
      op3 = MinimumStepstoOneTopdownApproach(n -1, dp);
      int ans = Math.Min(Math.Min(op1, op2), op3)+1;
      return dp[n] = ans;
   }
}

static void Main(string[] args){
   DynamicProgramming dp = new DynamicProgramming();
   int[] dpArr = new int[150];
   Console.WriteLine(dp.MinimumStepstoOneTopdownApproach(10, dpArr));
}

আউটপুট

3

  1. জাভা 9 এ JavaFX ব্যবহার করে JShell কিভাবে বাস্তবায়ন করবেন?

  2. জাভা 9 এ JShell ব্যবহার করে একটি ArrayList কিভাবে বাস্তবায়ন করবেন?

  3. জাভাতে Gson ব্যবহার করে কাস্টম ফিল্ডনামিং কৌশল কীভাবে বাস্তবায়ন করবেন?

  4. কিভাবে আমরা জাভাতে স্ট্যাক ব্যবহার করে একটি সারি বাস্তবায়ন করতে পারি?