ljhandlwt

白羽哀婉,不容于天空之湛蓝,亦不容于海之绀碧

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.


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljhandlwt/article/details/52693647
文章标签: leetcode 拓扑排序 dp
个人分类: leetcode
想对作者说点什么? 我来说一句

leetcode solution

2018年06月07日 1.15MB 下载

leetcode试题的答案

2018年01月14日 101KB 下载

leetbook书籍

2018年03月04日 1.26MB 下载

算法刷题LeetCode

2018年01月08日 837KB 下载

小岛算法课件

2018年04月04日 169KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭