yichen
  • 首页
  • 归档
  • 标签
  • 关于

LC-2572.无平方子集计数

题目描述leetcode 困难题 给你一个正整数数组 nums 。 如果数组 nums 的子集中的元素乘积是一个 无平方因子数 ,则认为该子集是一个 无平方 子集。 无平方因子数 是无法被除 1 之外任何平方数整除的数字。 返回数组 nums 中 无平方 且 非空 的子集数目。因为答案可能很大,返回对 10^9 + 7 取余的结果。 nums 的 非空子集 是可以由删除 nums 中一些元素(可以
2023-02-21
#动态规划 #状态压缩

LC-6358.更新数组后处理求和查询

题目描述leetcode 困难题 给你两个下标从 0 开始的数组 nums1 和 nums2 ,和一个二维数组 queries 表示一些操作。总共有 3 种类型的操作: 操作类型 1 为 queries[i] = [1, l, r] 。你需要将 nums1 从下标 l 到下标 r 的所有 0 反转成 1 或将 1 反转成 0 。l 和 r 下标都从 0 开始。 操作类型 2 为 que
2023-02-19
#线段树

LC-327.区间和的个数

题目描述leetcode 困难题 给你一个整数数组 nums 以及两个整数 lower 和 upper 。求数组中,值位于范围 [lower, upper] (包含 lower 和 upper)之内的 区间和的个数 。 区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。 示例1: 123输入:nums = [-2,5,-1], lowe
2023-02-18
#线段树 #树状数组

LC-239.滑动窗口最大值

题目描述leetcode 困难题 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例1: 1234567891011输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置
2023-02-18
#单调队列 #优先队列 #线段树

LC-307.区域和检索-数组可修改

题目描述leetcode 中等题 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left <= right实现 NumArray 类: NumArray(int[] nums) 用整数数组 nums 初始化
2023-02-17
#线段树 #树状数组

LC-1139.最大的以1为边界的正方形

题目描述leetcode 中等题 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例1: 12输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9 提示1: 1231 <= grid.length <= 1001 <= grid[0].le
2023-02-17
#前缀和 #动态规划

LC-1124.表现良好的最长时间段

题目描述leetcode 中等题 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。 请你返回「表现良好时间段」的最大长度。 示例1: 123输入:hours = [9,9,6,0,6,6,9]输出:3解
2023-02-14
#单调栈 #贪心 #前缀和

LC-1234.替换子串得到平衡字符串

题目描述leetcode 中等题 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。 给你一个这样的字符串 s,请通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」。 你可以用和「待替换子串」长度相同的 任何 其他字符串来完成替换。 请返回待替换子串的最
2023-02-13
#滑动窗口

LC-6357.最少得分子序列

题目描述leetcode 困难题 给你两个字符串 s 和 t 。 你可以从字符串 t 中删除任意数目的字符。 如果没有从字符串 t 中删除字符,那么得分为 0 ,否则: 令 left 为删除字符中的最小下标。令 right 为删除字符中的最大下标。字符串的得分为 right - left + 1 。 请你返回使 t 成为 s 子序列的最小得分。 一个字符串的 子序列 是从原字符串中删除一些字符后(
2023-02-13
#双指针/多指针 #前后缀分解

LC-6356.子字符串异或查询

题目描述leetcode 中等题 给你一个 二进制字符串 s 和一个整数数组 queries ,其中 queries[i] = [firsti, secondi] 。 对于第 i 个查询,找到 s 的 最短子字符串 ,它对应的 十进制值 val 与 firsti 按位异或 得到 secondi ,换言之,val ^ firsti == secondi 。 第 i 个查
2023-02-12
#预处理
12345…10

搜索