Using Python tricks to find Minimum Coin Change (Amazon Interview) What is the coin change problem?
The change-making problem addresses the question of finding the minimum number of coins (of certain denominations) that add up to a given amount of money. It is a special case of the integer knapsack problem and has applications wider than just currency. Read more: Wiki
My code:
def coin_change(n,coins,known_results):
     min_coins = n

     if n in coins:
        known_results[n] = 1
        return 1
     
     elif known_results[n] &gt; 0:     
            return known_results[n] 


     else:
        for i in [c for c in coins if c&lt;=n]:
            count = 1 + coin_change(n-i,coins,known_results)
            if count &lt; min_coins:
                min_coins = count
                
                known_results[n] = min_coins

     return min_coins

coins = [1,2,3]
n = 4
known_results = [0]*(n+1) 
print(coin_change(n,coins,known_results))

Question:
This code works fine and perfectly but can it be done better and more efficiently using python tricks giving it an edge more the other languages? Can it be more efficient and better?
Welcome to Code Review! Your code looks fine, and is fairly easy to follow. A few points to note though:
Since your initial if-elif clauses are returning values immediately, no need to wrap an else (and even elif) there:
if n in coins:
    known_results[n] = 1
    return 1
if known_results[n] &gt; 0:     
    return known_results[n] 
for i in [c for c in coins if c&lt;=n]:
    .
    .

is achieving the same thing.
In python, multiple assignments can be done in a single statement:
known_results[n] = min_coins = count

As an aside, you can make use of type hinting to make the values and parameters more understandable. If I was only reading through the function definition, I'd have no idea what known_results was supposed to be.