举个很简单的例子,区别就显而易见了。
你有1元、2元、5元的硬币各5枚,问付款26元所需的最少硬币数量。
首先贪心怎么做呢?
那当然是越贪越好。从五元的拿起,拿五个,然后是2元,最后1元,需要6个。
那dp应该怎么做呢?
写出状态转移方程:
d[0]=0,d[i]=min(d[i],d[i-vj[j]]+1)
可见,贪心是贪心解决子问题得到子问题的最优解,即最优子结构,最终结果=最优子结构+剩下子问题的最优解。
而dp则要通过状态转移方程一步步的根据前一步状态的结果来得到当前状态的最优解。
具体代码可见另一篇博客:
https://editor.csdn.net/md/?articleId=123953850