Minimum Steps to One

Problem Link: https://www.codingninjas.com/codestudio/problems/min-steps-to-one-using-dp_920548

class solution:
    def countStepsToOne(self,n):
        # Write your code here
        dp=[float('inf') for i in range(n+1)]
        dp[0]=0
        dp[1]=0
        for i in range(2,n+1):
            a1=dp[i-1]
            a2=float('inf')
            if(i%2==0 and i//2>=0):
                a2=dp[i//2]
            a3=float('inf')
            if(i%3==0 and i//3>=0):
                a3=dp[i//3]

            dp[i]=min(min(a1,a2),a3)+1
        return dp[n]

Last updated