8.24 - hard - 104

568. Maximum Vacation Days

又是一道dp,感觉用心去想还是可以做出来的,不过有点做不动了,看了答案,理解了一下。

class Solution(object):
    def maxVacationDays(self, flights, days):
        """
        :type flights: List[List[int]]
        :type days: List[List[int]]
        :rtype: int
        """
        # dp[i][j] - max days play if you spent week j in city i;
        # dp[i][j] = days[i][j] + max(dp[i=0,m][j + 1])
        n = len(days)
        k = len(days[0])
        dp = [[-sys.maxint for _ in range(k)] for _ in range(n)]
        
        for j in range(k-1, -1, -1):
            for i in range(n):  # 最后一周呆在某个城市所获得的收益
                dp[i][j] = days[i][j]
                for i1 in range(n):
                    if j < k - 1 and (flights[i][i1] or i == i1): # 从倒数第二周开始
                        dp[i][j] = max(dp[i][j], days[i][j] + dp[i1][j + 1])
        maxplay = dp[0][0]
        for i in range(n):
            if flights[0][i]:
                maxplay = max(maxplay, dp[i][0])
        return maxplay
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • 谁都有过青春,有微风白裙,有耽美百合,有暗恋明恋,有学霸学渣,有做不完的试卷套题,有心心念的名次排名。 高一,在怀...
    肖梦阅读 1,391评论 0 0
  • 在20世纪30年代,美国有一位年轻人,他特别想发财,一天到晚想着自己怎样才能发财,怎样可以成为百万富翁、千万富翁、...
    1127335b8aa4阅读 1,657评论 0 0
  • 一年快结束了,小结2017年: 本事没长,肉长了, 医院没少去,二胎没实现, 职称没评,因为没指标, 工资没少发,...
    徍音_阅读 1,612评论 2 2