leetcode 135.Candy

拓扑排序


题意:

一排小朋友,每个小朋友有一个权值,你要给小朋友发糖,有两个规则.

1.每个小朋友至少有一颗糖

2.如果某个小朋友A的权值比它旁边的小朋友B大,那么A分得的糖应该比B要多.


思路:

思想是拓扑排序+dp.

建一个有向图,对于相邻的A和B,如果A的权值比B大,则B向A建一条边.

建好后,这个图肯定是DAG,然后用类似拓扑排序的顺序对这个DAG进行dp,dp[i]=max(dp[son])+1.

实际上不用建图,直接dp,复杂度O(n).


总结:

建一个DAG,在上面拓扑排序地dp.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值