Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में बॉटम-अप दृष्टिकोण का उपयोग करके एक तक न्यूनतम चरण कैसे लागू करें?


MinimumStepstoOneBottomdownApproach पूर्णांक n को इनपुट के रूप में लेता है। पैरामीटर n में तत्वों की कुल संख्या होती है। प्रारंभिक स्थिति जांचती है कि क्या n 1 के बराबर है। यदि n 1 के बराबर है तो 0 लौटाएं। op1, op2 और op3 को अधिकतम मान पर आरंभ करें। यदि n mod 3 0 के बराबर है तो MinimumStepstoOneBottomdownApproach को पुनरावर्ती रूप से कॉल करें और इसे op1 को असाइन करें, यदि n mod 2 0 के बराबर है तो MinimumStepstoOneBottomdownApproach को पुनरावर्ती रूप से कॉल करें और इसे op2 को असाइन करें अन्यथा n से 1 घटाएं और MinimumStepstoOneBottomdownApproach को कॉल करें। अंत में dp ऐरे से मान लौटाएं।

समय जटिलता − O(N)

स्पेस जटिलता − O(N)

उदाहरण

public class DynamicProgramming{    public int MinimumStepstoOneBottomdownApproach(int n){       int[] dp = new int[100];       dp[1] = 0;       for (int i = 2; i < n; i++){          int op1 = int.MaxValue, op2 = int.MaxValue, op3 = int.MaxValue;          if (n % 3 == 0){             op1 = dp[i / 3];          }          if (n % 2 == 0){             op2 = dp[i / 2];          }          op3= dp[i -1];          dp[i]= Math.Min(Math.Min(op1, op2), op3) + 1;       }       return dp[n-1];    } } static void Main(string[] args){    DynamicProgramming dp = new DynamicProgramming();    Console.WriteLine(dp.MinimumStepstoOneBottomdownApproach(10)) }

आउटपुट

3
  1. Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें

    Java 9 ने jdk.jshell API पेश किया जो डेवलपर्स को अपने एप्लिकेशन में JShell कार्यक्षमता को एम्बेड करने की अनुमति देता है। यह लेख दिखाता है कि एक JavaFX एप्लिकेशन कैसे बनाया जाए जो JShell का उपयोग करके कोड स्निपेट्स का मूल्यांकन करता है और परिणाम प्रदर्शित करता है। आवश्यक निर्भरताएं Java 9+ (JSh

  1. - Java में Gson का उपयोग करके कस्टम FieldNamingStrategy कैसे लागू करें

    FieldNamingStrategy Gson में कस्टम फील्ड नामकरण प्रदान करने का एक तंत्र है। यह क्लाइंट कोड को फील्ड नामों को एक विशेष कन्वेंशन में अनुवाद करने की अनुमति देता है जो सामान्य Java फील्ड घोषणा नियमों द्वारा समर्थित नहीं है। translateName() मेथड प्रत्येक फील्ड नाम को स्ट्रिंग pre_ से प्रीफिक्स करेगा।नीचे

  1. - जावा में Stack का उपयोग करके Queue कैसे लागू करें?

    Queue क्लास Collection इंटरफेस को एक्सटेंड करती है और फर्स्ट-इन-फर्स्ट-आउट (FIFO) का उपयोग करके इन्सर्ट और रिमूव ऑपरेशन्स का समर्थन करती है। Stack Vector क्लास का एक सबक्लास है और यह ऑब्जेक्ट्स के लास्ट-इन-फर्स्ट-आउट (LIFO) स्टैक को दर्शाता है। स्टैक के शीर्ष पर जोड़ा गया अंतिम एलिमेंट (In) स्टैक स