avatar
请教一题,关于interval# JobHunting - 待字闺中
r*h
1
有N个interval,每个有单独的startTime, endTime和cost
找一个subset,使得其中的interval互不相交,且cost最大
这题感觉不能用greedy呀。。难道只能枚举所有的子集吗?
avatar
r*e
2
好像去年f的onsite问过这题,当时花了
些时间想,最后用dp解的,不知道是不是最优解但面试官认可了我的解法。
不过那一轮只做了一道题,之前没见过这题。

【在 r**h 的大作中提到】
: 有N个interval,每个有单独的startTime, endTime和cost
: 找一个subset,使得其中的interval互不相交,且cost最大
: 这题感觉不能用greedy呀。。难道只能枚举所有的子集吗?

avatar
r*h
3
能说一下dp的思路吗?
我的想法是,先按照结束时间sort每个interval,然后使用
dp[i][j], start[i][j], end[i][j]分别存第i个到第j个interval的最大cost,最优解
的开始时间和结束时间
合并的时候先看两半dp[i][k]和dp[k+1][j]是否有intersection,如果没有的话就加起
来更新对应的开始和结束时间dp[i][j] = max(dp[i][j], dp[i][k]+dp[k+1][j])
不知道这样是否可以呢

【在 r*****e 的大作中提到】
: 好像去年f的onsite问过这题,当时花了
: 些时间想,最后用dp解的,不知道是不是最优解但面试官认可了我的解法。
: 不过那一轮只做了一道题,之前没见过这题。

avatar
J*3
4
能说说为啥不能贪心吗?我怎么感觉和CLRS上例题好像啊
avatar
p*2
5
怎么感觉像是O(n^2)时间,O(n)空间的DP呀。
avatar
p*2
6

贪心怎么搞?话说一般interview碰到贪心的几率是蛮低的。

【在 J****3 的大作中提到】
: 能说说为啥不能贪心吗?我怎么感觉和CLRS上例题好像啊
avatar
h*i
7
是,跟longest increasing sequence结构一样.

【在 p*****2 的大作中提到】
: 怎么感觉像是O(n^2)时间,O(n)空间的DP呀。
avatar
J*3
8
二爷讲讲?
avatar
J*3
9
恩 LIS变体
avatar
J*3
10
额 我二了 贪心给不出最大解吧。

【在 p*****2 的大作中提到】
:
: 贪心怎么搞?话说一般interview碰到贪心的几率是蛮低的。

avatar
r*h
11
是哦,的确这样就可以了
感谢大牛们

【在 h***i 的大作中提到】
: 是,跟longest increasing sequence结构一样.
avatar
r*h
12
是啊,而且不少贪心的题目好想不好写

【在 p*****2 的大作中提到】
:
: 贪心怎么搞?话说一般interview碰到贪心的几率是蛮低的。

avatar
x*w
13

CLRS上greedy那章的课后题,不能用greedy,只可以DP

【在 r**h 的大作中提到】
: 有N个interval,每个有单独的startTime, endTime和cost
: 找一个subset,使得其中的interval互不相交,且cost最大
: 这题感觉不能用greedy呀。。难道只能枚举所有的子集吗?

avatar
j*n
14
This problem is called 'weighted activity selection', you can only use DP to
solve it, greedy can only solve 'activity selection', or the un-weighted
version.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。