Leetcode 3694. Distinct Points Reachable After Substring Removal

  • [Leetcode 3694. Distinct Points Reachable After Substring Removal](#Leetcode 3694. Distinct Points Reachable After Substring Removal)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题思路上就是一个滑动窗口的思路,我们首先计算出终点的位置,然后考察每一个连续长为 k k k的窗口的位移改变量,然后减去对应的改动量即可。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def distinctPoints(self, s: str, k: int) -> int:
        mapping = {"U": [0, 1], "D": [0, -1], "L": [-1, 0], "R": [1, 0]}
        cord = [0, 0]
        for ch in s:
            cord = [x+d for x, d in zip(cord, mapping[ch])]
        ans = set()
        delta = [0, 0]
        for i, ch in enumerate(s):
            delta = [x+d for x, d in zip(delta, mapping[ch])]
            if i-k >= 0:
                delta = [x-d for x, d in zip(delta, mapping[s[i-k]])]
            if i >= k-1:
                ans.add((cord[0]-delta[0], cord[1]-delta[1]))
        return len(ans)

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

相关推荐
技道两进2 天前
使用深度神经网络进行时间序列分析之数据窗口
深度学习·tensorflow·时间序列预测·滑动窗口·数据窗口
Tisfy3 天前
LeetCode 3013.将数组分成最小总代价的子数组 II:两个堆维护k-1小 + 滑动窗口
算法·leetcode·题解·优先队列··有序集合·滑动窗口
睡不醒的kun7 天前
不定长滑动窗口-求子数组个数
数据结构·c++·算法·leetcode·职场和发展·双指针·滑动窗口
睡不醒的kun11 天前
不定长滑动窗口-基础篇(2)
数据结构·c++·算法·leetcode·哈希算法·散列表·滑动窗口
沉默-_-12 天前
力扣hot100滑动窗口(C++)
数据结构·c++·学习·算法·滑动窗口
睡不醒的kun13 天前
定长滑动窗口-基础篇(2)
数据结构·c++·算法·leetcode·职场和发展·滑动窗口·定长滑动窗口
燃于AC之乐16 天前
我的算法修炼之路--8——预处理、滑窗优化、前缀和哈希同余,线性dp,图+并查集与逆向图
算法·哈希算法·图论·滑动窗口·哈希表·线性dp
minhuan20 天前
大模型应用:稀疏注意力 vs 滑动窗口:大模型扩窗技术完全解析.58
滑动窗口·大模型应用·稀疏注意力·大模型扩窗技术
老鼠只爱大米23 天前
LeetCode算法题详解 76:最小覆盖子串
算法·leetcode·双指针·滑动窗口·最小覆盖子串·minwindow
老鼠只爱大米23 天前
LeetCode算法题详解 239:滑动窗口最大值
算法·leetcode·双端队列·滑动窗口·滑动窗口最大值·单调队列