leetcode-168周赛-1298-你能从盒子中获得的最大糖果数

题目描述:

 

 

 

 

 

 方法一:bfs

class Solution:
    def maxCandies(self, status: List[int], candies: List[int], keys: List[List[int]], containedBoxes: List[List[int]], initialBoxes: List[int]) -> int:
        n=len(status)
        ans=0
        cur=initialBoxes
        cont=True
        while cont:
            cont=False
            nxt=[]
            for idx in cur:
                if status[idx]:
                    ans+=candies[idx]
                    nxt.extend(containedBoxes[idx])
                    for nid in keys[idx]:
                        status[nid]=1
                    cont=True
                else:
                    nxt.append(idx)
            cur=nxt
        return ans
posted @ 2019-12-25 17:11  oldby  阅读(141)  评论(0编辑  收藏  举报