Leetcode 3741. Minimum Distance Between Three Equal Elements II

  • [Leetcode 3741. Minimum Distance Between Three Equal Elements II](#Leetcode 3741. Minimum Distance Between Three Equal Elements II)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题是leetcode周赛475的第二题,是一个medium的题目,也是第一题3740. Minimum Distance Between Three Equal Elements I的一个复杂版本,不过两道题本质上只有复杂度要求上有一点区别。

这道题思路上并不难,只要将所有相同元素的位置记录下来,然后比较相连的三个元素的位置,取其绝对值只差的和的最小值即可。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def minimumDistance(self, nums: List[int]) -> int:
        locs = defaultdict(list)
        ans = math.inf
        for i, num in enumerate(nums):
            locs[num].append(i)
            if len(locs[num]) >= 3:
                ans = min(ans, 2*(i-locs[num][-3]))
        return ans if ans != math.inf else -1

提交代码评测得到:耗时371ms,占用内存47.88MB。

相关推荐
Jasmine_llq7 天前
《P3572 [POI 2014] PTA-Little Bird》
算法·滑动窗口·单调队列·动态规划(dp)·多组查询处理·循环优化(宏定义 rep)
cur1es8 天前
【TCP 协议的相关特性】
java·网络·网络协议·tcp/ip·tcp·滑动窗口·连接管理
逆境不可逃10 天前
LeetCode 热题 100 之 76.最小覆盖子串
java·算法·leetcode·职场和发展·滑动窗口
识君啊14 天前
Java 滑动窗口 - 附LeetCode经典题解
java·算法·leetcode·滑动窗口
拾光Ծ18 天前
【优选算法】滑动窗口算法:专题一
c++·算法·滑动窗口·c++算法·滑动窗口算法·笔试面试
tryxr21 天前
深入理解 TCP 的滑动窗口、快速重传、流量控制和拥塞控制机制
服务器·网络·tcp/ip·滑动窗口·流量控制·拥塞控制
技道两进1 个月前
使用深度神经网络进行时间序列分析之数据窗口
深度学习·tensorflow·时间序列预测·滑动窗口·数据窗口
Tisfy1 个月前
LeetCode 3013.将数组分成最小总代价的子数组 II:两个堆维护k-1小 + 滑动窗口
算法·leetcode·题解·优先队列··有序集合·滑动窗口
睡不醒的kun1 个月前
不定长滑动窗口-求子数组个数
数据结构·c++·算法·leetcode·职场和发展·双指针·滑动窗口
睡不醒的kun1 个月前
不定长滑动窗口-基础篇(2)
数据结构·c++·算法·leetcode·哈希算法·散列表·滑动窗口