• 2024-11-14光伏场地建设规划 E100
    题目描述祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站,生产清洁能源,对每平方公里的土地进行了发电评估,其中不能建设的区域发电量为0kw,可以发电的区域根据光照,地形等
  • 2024-11-13LCR 011. 连续数组(中等)(主站525)
    https://leetcode.cn/problems/A1NYOS/https://leetcode.cn/problems/contiguous-array/难度:☆☆☆☆题目:给定一个二进制数组nums,找到含有相同数量的0和1的最长连续子数组,并返回该子数组的长度。示例:输入:nums=[0,1]输出:2说明:[0,1]是具有相同数
  • 2024-11-111. 两数之和
    题目链接解题思路:方法一:两个for循环,时间复杂度:O(n^2)方法二:先排序,然后双指针,时间复杂度:O(n*logn)方法三:使用一个set,从左往右遍历,每次遍历到一个数num,先查找set,是否存在target-num的数,如果存在,直接返回了。时间复杂度:O(n)。因为题目需要下标,所以要用map,value就是下
  • 2024-09-182321. 拼接数组的最大分数
    题目链接2321.拼接数组的最大分数思路最大子数组和-变体题解链接转换成最大子数组和(Python/Java/C++/Go)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现:classSolution:defmaximumsSplicedArray(self,nums1:List[int],nums2:Lis
  • 2024-09-18[模板题] - 53. 最大子数组和
    题目链接53.最大子数组和思路1.前缀和2.动态规划题解链接两种方法:前缀和/动态规划(Python/Java/C++/C/Go/JS/Rust)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现(前缀和):classSolution:defmaxSubArray(self,nums:List[int])->
  • 2024-09-18【数据结构和算法实践-树-LeetCode112-路径总和】
    数据结构和算法实践-树-LeetCode112-路径总和题目MyThought代码示例JAVA-8题目给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则
  • 2024-08-18力扣刷题——3096.得到更多分数的最少关卡数目
    根据题意,假如alice选择完成第i关到第j关,那么bob需要完成第j+1关到第n关,其中i<=j<n。如此可以想到对关卡数组进行预处理,构建一个前缀和数组,保存假如从第0关每关都通过的话,到第i关所得到的分数。通过遍历一次前缀和数组,能够得到每个时刻alice得到的分数和bob得到的分数,当alice获得
  • 2024-08-10最大子矩阵(C/C++)
    简介:最大子矩阵问题是指在一个矩阵中找到一个子矩阵,使得该子矩阵的元素之和最大。解决该问题的常用方法是使用动态规划。先计算出每一行的前缀和,然后对于每一列的起始和终止位置,计算出该区域内每一行的和,得到一个一维数组。再对该一维数组使用动态规划求解最大子数组和的问题
  • 2024-08-02LeetCode | 303 RangeSumQueryImmutable
    https://github.com/dolphinmind/datastructure/tree/datastructure-array-02分析所求解的区间[left,right]具有连续性,执行常规for循环计算,[0,left-1]的区间元素累加和与[0,right]的区间元素累加和,有重复的运算区间[0,left)。累加和与长跑比赛其实一致,求取[left,right]区
  • 2024-07-22LeetCode 3070. 元素和小于等于 k 的子矩阵的数目
    3070.元素和小于等于k的子矩阵的数目给你一个下标从 0 开始的整数矩阵 grid 和一个整数 k。返回包含 grid 左上角元素、元素和小于或等于 k 的 子矩阵 的数目。示例1:输入:grid=[[7,6,3],[6,6,1]],k=18输出:4解释:如上图所示,只有4个子矩阵满足:包含g
  • 2024-07-21Codeforces Round 960 (Div.2) 补题
    A非常容易观察到性质,注意Alice为先手,发现当\(a_{\max}\)的个数为奇数时显然能win,但如果\(a_{\max}\)的个数为偶数且有一个数具有奇数个可以作为跳板,那么也能win,否则就lose。B结论:\(presum_x\geq2+presum_{y-1}\geq2+\min{presum_i}\geq1+\max{presum_i}
  • 2024-07-20LeetCode 1788. 最大化花园的美观度
    1788.最大化花园的美观度有一个花园,有 n 朵花,这些花都有一个用整数表示的美观度。这些花被种在一条线上。给定一个长度为 n 的整数类型数组 flowers ,每一个 flowers[i] 表示第 i 朵花的美观度。一个花园满足下列条件时,该花园是有效的。花园中至少包含两朵花。第
  • 2024-07-11LeetCode 2950. 可整除子串的数量
    2950.可整除子串的数量每个英文字母都被映射到一个数字,如下所示。如果字符串的字符的映射值的总和可以被字符串的长度整除,则该字符串是 可整除 的。给定一个字符串 s,请返回 s 的 可整除子串 的数量。子串 是字符串内的一个连续的非空字符序列。示例1:Substrin
  • 2024-07-09LeetCode 面试题 17.05. 字母与数字
    面试题17.05.字母与数字给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。示例1:输入:["A","1","B","C","D","2","3","4","E","5&q
  • 2024-07-09LeetCode 1546. 和为目标值且不重叠的非空子数组的最大数目
    1546.和为目标值且不重叠的非空子数组的最大数目给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例1:输入:nums=[1,1,1,1,1],target=2输出:2解释:总共有2个不重叠子数组(加粗数字表示)[1,
  • 2024-07-08LeetCode 523. 连续的子数组和
    523.连续的子数组和给你一个整数数组 nums 和一个整数 k ,如果 nums 有一个 好的子数组 返回 true ,否则返回 false:一个 好的子数组 是:长度 至少为2 ,且子数组元素总和为 k 的倍数。注意:子数组 是数组中 连续 的部分。如果存在一个整数 n ,令整数 x
  • 2024-07-08LeetCode 974. 和可被 K 整除的子数组
    974.和可被K整除的子数组给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。示例1:输入:nums=[4,5,0,-2,-3,1],k=5输出:7解释:有7个子数组满足其元素之和可被k=5整除:[4,5,0
  • 2024-05-30前缀和数组
    //前缀和数组preSum[]:preSum[i]记录nums[0,i-1]区间的累加和classex_preSum{private:vector<int>preSum;public:ex_preSum(vector<int>nums){preSum.resize(nums.size()+1);//原数组下标[0,n-1]。preS
  • 2024-05-24P8765 [蓝桥杯 2021 国 AB] 翻转括号序列
    本文参考博客[蓝桥杯2021国AB]翻转括号序列(线段树上二分)一、问题简析线段树+二分初步分析令(的值为1,)的值为-1,则对于序列\(a_La_{L+1}a_{L+2}...a_R\),其为合法序列的条件为\[\begin{cases}\sum_{n=L}^R{a_n}=0\\\forall~k\in[L,R],\sum_{n=L}^k{a_n}\ge
  • 2024-04-01前缀和
    题目LeetCode力扣难度303.RangeSumQuery-Immutable303.区域和检索-数组不可变
  • 2024-03-27304. 二维区域和检索 - 矩阵不可变(中)
    目录题目题解:二维前缀和题目给定一个二维矩阵matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为(row1,col1),右下角为(row2,col2)。实现NumMatrix类:NumMatrix(int[][]matrix)给定整数矩阵matrix进行初始化intsumRegion(introw1,
  • 2024-03-25P2642 双子序列最大和
    原题链接审题1.连续子序列:子序列必须连续2.最小长度为13.子序列之间至少隔一个数题解令\(presum[i]\)代表i及其之前的最大前缀和则第一步更新令\(presum[i]\)为必须包括i的最大前缀和,第二步更新令其为i及其之前的最大前缀和。sufsum同理最后枚举断点求和code#inclu
  • 2024-03-07labuladong_一/二维数组前缀和
    一维数组前缀和核心思路是我们new一个新的数组 preSum 出来,preSum[i] 记录 nums[0..i-1] 的累加和。看这个 preSum 数组,如果我想求索引区间 [1,4] 内的所有元素之和,就可以通过 preSum[5]-preSum[1] 得出。一维数组前缀和 
  • 2024-01-28数组前缀和
    一维数组中的前缀和https://leetcode.com/problems/range-sum-query-immutable/description/区域和检索#include<stdio.h>#include<stdlib.h>//定义NumArray结构体typedefstruct{int*preSum;//前缀和数组}NumArray;//创建NumArray对象,并计算前缀和数组
  • 2024-01-181480.一维数组的动态和
    1.题目介绍给你一个数组nums。数组「动态和」的计算公式为:runningSum[i]=sum(nums[0]…nums[i])。请返回nums的动态和。示例1:输入:nums=[1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为[1,1+2,1+2+3,1+2+3+4]。示例2:输入:nums=[1,1,1,1,1]输出:[1,2,3,4,5]