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。

相关推荐
xin_nai7 天前
LeetCode热题100(Java)(3)滑动窗口
算法·leetcode·滑动窗口
加油JIAX17 天前
为什么边缘化先验的Hessian矩阵可分解得到Jacobian矩阵?
slam·滑动窗口·边缘化
1104.北光c°1 个月前
Leetcode3.无重复字符的最长子串 HashSet+HashMap 【hot100算法个人笔记】【java写法】
java·开发语言·笔记·程序人生·算法·leetcode·滑动窗口
罗湖老棍子1 个月前
They Are Everywhere(Codeforces- P701C)
算法·滑动窗口·codeforce题解
1104.北光c°1 个月前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
罗湖老棍子1 个月前
滑动窗口与双调队列:幕布覆盖问题(定右缩左满分板子)改编自LeetCode 1438
算法·滑动窗口·单调队列
喵喵蒻葉睦1 个月前
力扣 hot100 最小覆盖子串 哈希表 滑动窗口 Java 题解
java·算法·leetcode·哈希算法·散列表·滑动窗口
罗湖老棍子2 个月前
Maximum Subarray Sum II最大连续区间和(CSES- P1644)
算法·滑动窗口·单调队列
喵喵蒻葉睦2 个月前
力扣 hot100 滑动窗口最大值 单调双端队列 java 简单题解
java·数据结构·算法·leetcode·双端队列·滑动窗口·队列
月明长歌2 个月前
【码道初阶-Hot100】LeetCode 438 + 567 对照详解:一套滑动窗口模板,彻底讲透“固定长度窗口 + 计数数组 + count维护”
算法·leetcode·滑动窗口