I’m totally stuck and have no idea how to go about solving this. Let’s say I’ve an array
arr = [1, 4, 5, 10]
and a number
n = 8
I need shortest sequence from within arr which equals n. So for example following sequences within arr equals n
c1 = 5,1,1,1
c2 = 4,4
c3= 1,1,1,1,1,1,1,1
So in above case, our answer is c2 because it’s shortest sequences in arr that equals sum.
I’m not sure what’s the simplest way of finding a solution to above? Any ideas, or help will be really appreciated.
Thanks!
Edited:
- Fixed the array
- Array will possibly have postive values only.
- I’m not sure how subset problem fixes this, probably due to my own ignorance. Does sub-set algorithm always give the shortest sequence that equals sum? For example, will subset problem identify c2 as the answer in above scenario?
As has been pointed before this is the minimum change coin problem, typically solved with dynamic programming. Here’s a Python implementation solved in time complexity O(nC) and space complexity O(C), where
nis the number of coins andCthe required amount of money:In the above functions
Vis the list of possible coins andCthe required amount of money. Now when you call themin_changefunction the output is as expected: