0
点赞
收藏
分享

微信扫一扫

Leetcode 2078. Two Furthest Houses With Different Colors [Python]

设置两个字典,记录一个数字出现的最小最大位置。然后暴力遍历,用一个数字最小和另一个数字最大的位置相减,更新全局最大值。

class Solution:
    def maxDistance(self, colors: List[int]) -> int:
        dic1 = collections.defaultdict(int)
        dic2 = collections.defaultdict(int)
        for i, c in enumerate(colors):
            if c not in dic1:
                dic1[c] = i
            else:
                dic1[c] = min(i, dic1[c])
            if c not in dic2:
                dic2[c] = i
            else:
                dic2[c] = max(i, dic2[c])
        res = float('-inf')
        meet = set()
        for k in dic1.keys():
            if k in meet:continue
            for t in dic1.keys():              
                if k == t:continue
                temp1 = abs(dic1[k] - dic2[t])
                temp2 = abs(dic2[k] - dic1[t])
                temp = max(temp1, temp2)
                res = max(temp, res)
            meet.add(k)
        return res
举报

相关推荐

0 条评论