设置两个字典,记录一个数字出现的最小最大位置。然后暴力遍历,用一个数字最小和另一个数字最大的位置相减,更新全局最大值。
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] = ielse:dic1[c] = min(i, dic1[c])if c not in dic2:dic2[c] = ielse:dic2[c] = max(i, dic2[c])res = float('-inf')meet = set()for k in dic1.keys():if k in meet:continuefor t in dic1.keys(): if k == t:continuetemp1 = abs(dic1[k] - dic2[t])temp2 = abs(dic2[k] - dic1[t])temp = max(temp1, temp2)res = max(temp, res)meet.add(k)return res
本文发布于:2024-01-28 10:12:48,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064079736694.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |