Leetcode 3768. Minimum Inversion Count in Subarrays of Fixed Length

  • [Leetcode 3768. Minimum Inversion Count in Subarrays of Fixed Length](#Leetcode 3768. Minimum Inversion Count in Subarrays of Fixed Length)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题是leetcode双周赛171的第四题,是一个hard的题目。

这一题思路上就是一个滑动窗口的题目,我们只需要考察长度为 k k k的连续窗口中加入一个元素与减去一个元素的状态即可。

加入最右的一个元素,会带来的反序列的个数就是窗口中所有大于该元素的数的个数,反之,减去最左的一个元素,其减少的反序列的个数就是窗口中所有小于该数的元素的个数。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def minInversionCount(self, nums: List[int], k: int) -> int:
        n = len(nums)
        ans = math.inf
        cnt = 0
        window = []
        for i, num in enumerate(nums):
            if i-k >= 0:
                idx = bisect.bisect_left(window, nums[i-k])
                cnt -= idx
                window.pop(idx)
            idx = bisect.bisect_right(window, num)
            cnt += len(window) - idx
            window.insert(idx, num)
            if i >= k-1:
                ans = min(ans, cnt)
        return ans

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

相关推荐
minhuan11 小时前
大模型应用:稀疏注意力 vs 滑动窗口:大模型扩窗技术完全解析.58
滑动窗口·大模型应用·稀疏注意力·大模型扩窗技术
老鼠只爱大米4 天前
LeetCode算法题详解 76:最小覆盖子串
算法·leetcode·双指针·滑动窗口·最小覆盖子串·minwindow
老鼠只爱大米4 天前
LeetCode算法题详解 239:滑动窗口最大值
算法·leetcode·双端队列·滑动窗口·滑动窗口最大值·单调队列
老鼠只爱大米6 天前
LeetCode算法题详解 3:无重复字符的最长子串
算法·leetcode·面试题·滑动窗口·无重复字符的最长子串·最长子串
童话名剑10 天前
目标检测(吴恩达深度学习笔记)
人工智能·目标检测·滑动窗口·目标定位·yolo算法·特征点检测
阿巴~阿巴~14 天前
从滑动窗口到拥塞控制:TCP高效可靠传输的三大支柱
服务器·网络·网络协议·tcp·滑动窗口·流量控制·拥塞控制
CodeAmaz17 天前
常用限流算法详解
滑动窗口·限流算法·令牌桶
Espresso Macchiato20 天前
Leetcode 3791. Number of Balanced Integers in a Range
leetcode hard·leetcode周赛482·leetcode 3791
Espresso Macchiato20 天前
Leetcode 3782. Last Remaining Integer After Alternating Deletion Operations
迭代·leetcode hard·leetcode双周赛172·leetcode 3782