leetcode热题100
文章平均质量分 73
kx__9
这个作者很懒,什么都没留下…
展开
-
Leetcode热题100 ---day2(前缀和)
首先,考虑暴力解法,定义一个大小为k的优先队列来充当窗口,依次向有移动,每次移动取出窗口中的最大值,时间复杂度为O(n * k),当n和k都很大时,时间复杂度过高。:由于在方案一中每次计算子数组和sum[j]时,都是从nums[i]加到nums[j],但在计算sum[j+1]时,我们可以直接通过sum[j] + nums[j+1]得到,不需要从nums[i]重新开始,避免了重复计算,时间复杂度减少到O(n^2)。给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。原创 2024-03-12 20:34:38 · 868 阅读 · 1 评论 -
LeetCode热题100---day 1(滑动窗口)
在暴力算法中,由于我们每次都应用了快排来找出异位词,快排的时间复杂度为O(n*logn),带来了大量的时间消耗。窗口初始化大小为0,在遇到窗口中不存在的字符,则窗口大小加一,并将该字符加入窗口(队列);首先考虑暴力解法,将p进行排序,再根据p的大小创建匹配窗口,从s的第1位一直匹配到s的第s_len - p_len + 1位,将每次窗口中的子串取出并进行排序后与排序后的p进行比较即可。给定两个字符串s和p,找到s中所有p的异位词的子串,返回这些字串的起始索引。输入:s = "abcabcbb"原创 2024-03-11 20:41:12 · 327 阅读 · 0 评论