查看: 1696| 回复: 7
跳转到指定楼层
上一主题 下一主题
收起左侧

[动态规划] 求教看着像数学题的DP题(比如Coin Change)

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
今天第一次做coin change,下意识得想用数学方法做。比如排序,然后从大到小一个个试下来。其实这种做法是错的。

之后又看到了一个题。把一个array分成2部分(无关顺序),要求这两部分的总和相等。我又去排序了。。

其实这些题暴力解+memo。

想问问大家对这些题有什么经验吗?怎么能一下想到要用暴力解。另外有类似题目也请多多举例。多看可能也就知道套路了……

上一篇:想找computer vision工作,也需要刷题吗
下一篇:coin change的问题但是需要排序怎么弄?
推荐
Kayle_Yang 2019-3-21 14:07:42 | 只看该作者
全局:
DP 解法固定套路:

recursion --> recursion with memoization --> Dynamic programming
或者:
recursion --> top-down --> bottom up (Dynamic Programming)

所以DP题没思路就先递归。。
回复

使用道具 举报

推荐
Oshino 2019-3-21 12:16:07 | 只看该作者
全局:
DP or 数学 都是套路。别把自己套进去了。
做题最重要的是你怎么思考这个问题。你第一眼看到题的时候应该把重心放在“咦 我该怎么分析他呢” 而不是 “咦 这是什么题?DP?”

比如这个题,第一眼不应该是这是数学还是DP? 如果是DP 我该怎么列方程?
你应该分析:凑相等的两部分?总和是固定的,那么我一开始就能知道 我应该要凑多大的数。
现在问题变成了,一个数组,我要刚好凑到target,判断是否可能,咦这不就是背包吗。
以上才是正确的思考方式。

最开始我也是想我应该一下子看出这是什么类型的题。后来发现 太多题不能这样想。
太多题根本没有所谓的套路 考验的是你如何去分析问题,最后把问题分析到某个程度发现刚好有一个工具(二分,DP)可以去解决这个问题。这才是算法的意义。
你不能总想着一开始就拿着锤子找钉子,你得碰到钉子才用锤子。不然有时候面试官放了一个螺丝钉期盼你拿螺丝刀去拧,你一来就拿着锤子说 这钉子怎么不好锤。

评分

参与人数 3大米 +7 收起 理由
14417335 + 5 很有用的信息!
fuxi9999 + 1 赞一个
風行烈 + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| fuxi9999 2019-3-21 02:01:07 来自APP | 只看该作者
全局:
自己顶一下
回复

使用道具 举报

🔗
rokiya 2019-3-21 04:52:23 | 只看该作者
全局:
其实,这道题我第一做就是在数学竞赛,用的就是dp方法。。。
回复

使用道具 举报

🔗
 楼主| fuxi9999 2019-3-21 09:51:04 | 只看该作者
全局:
ymsfnm4l 发表于 2019-3-20 21:28
github.com/tianyicui/pack/blob/master/V2.pdf

确实没有意识到这个也是背包问题
回复

使用道具 举报

🔗
VivaCA 2019-3-21 10:56:58 | 只看该作者
全局:
coin change是什么东西啊 ,感觉能想到的就是暴力解了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表