自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 LeetCode2024年3月19日每日一题(1793. 好子数组的最大分数)

这个算法首先固定了一个点nums[k]作为子数组的最小值,然后通过扩展子数组的左右边界来探索所有可能包含nums[k]且以nums[k]为最小值的子数组。算法的目标是找到这样的子数组,使得它的"分数"(最小值乘以长度)最大。边界扩展:通过两个while循环向左右两边扩展,寻找以nums[k]为最小值的子数组的最大可能边界。分数更新:在每次边界扩展后,更新最大分数res。终止条件:当左右边界都达到数组的端点时,结束循环。动态调整:通过更新nums[k]

2024-03-19 11:07:45 360 1

原创 LeetCode(84. 柱状图中最大的矩形)

单调栈是一种特殊的栈结构,它在解决一类特定的问题时非常有效,特别是那些涉及序列中元素之间相对大小关系的问题。使用单调栈可以帮助我们快速找到一个元素左边或右边第一个比它大(或小)的元素。如果小于等于栈顶元素,则将栈顶元素弹出,直到栈顶元素小于新元素,然后新元素入栈。如果大于等于栈顶元素,则将栈顶元素弹出,直到栈顶元素大于新元素,然后新元素入栈。这段代码通过维护一个单调递减的栈来找到数组中每个元素右侧第一个比它大的元素,从而高效解决了这类问题。通过上述步骤,我们可以找到数组中每个元素右侧第一个比它大的元素。

2024-03-19 10:38:01 561 1

原创 LeetCode(LCP 74. 最强祝福力场)

在二维情况下,差分数组可以用于记录二维区域内部的变化,如本例中的力场强度变化。通过在差分数组的特定位置加上或减去值,可以实现对原数组(即实际的力场分布图)的快速更新。:遍历每个力场,对于每个力场的 X 和 Y 坐标,分别计算它们加上半径和减去半径的值(左移操作用于防止坐标溢出),并通过。,通过累加左上角到当前点的变化量,计算出每个点的实际力场值,并找到并返回最大的力场值。方法处理差分数组,计算每个点的实际力场值,并找到最大的力场值作为结果返回。方法更新差分数组,记录力场覆盖区域内每一点的力场增加值。

2024-03-18 20:26:26 912

原创 LeetCode2024年3月18日每日一题(303. 区域和检索 - 数组不可变)

对于给定的数组,其一维前缀和数组,这是为了方便计算从头开始的区间和。对于所有的。也就是说,存储了的总和。

2024-03-18 10:29:05 987

原创 LeetCode2024年3月17日每日一题(310.最小高度数)(换根DP解法)

换根动态规划(DP)在这个场景中主要是为了找出所有可能的最小高度树的根节点。代码通过两次深度优先搜索(DFS)来实现这一目标。第一次DFS计算每个节点作为根时子树的最大深度,第二次DFS则尝试重新选择每个节点作为根节点,并计算新的树高度。在第一次DFS中计算并存储了每个节点作为根节点时的最大深度,而。及其子树的最大深度。用于存储在考虑根节点更换时各个节点的更新深度。,计算其作为根节点的子树最大深度。在代码中,这一步通过比较。的一个子节点,因此需要根据。的最大和次大子树深度。

2024-03-17 15:43:18 728 1

原创 LeetCode3月17周赛(100255. 成为 K 特殊字符串需要删除的最少字符数)

这个解决方案通过细致地分析字符频率分布,并运用动态规划技术来优化调整过程,有效地找到了将任意字符串转换成k特殊字符串所需的最小删除操作数。这种方法的优势在于它能够在保证结果正确性的同时,最小化所需的操作数量,从而高效解决问题。

2024-03-17 14:03:43 358 1

原创 LeetCode3月17周赛(100236. 统计以给定字符开头和结尾的子字符串总数 )

的值,使用组合数学的原理来计算所有可能的子字符串数量。的子字符串,1表示只有一个单字符子字符串。方法能够高效地计算出包含特定字符。的所有可能子字符串的数量。,因为0表示没有包含字符。这个方法首先计算字符串。

2024-03-17 13:54:44 400 1

原创 LeetCode周赛3月16双周赛(3080. 执行操作标记数组中的元素)

【代码】LeetCode周赛3月16双周赛(3080. 执行操作标记数组中的元素)

2024-03-17 13:49:49 140 1

原创 蓝桥杯(幸运数字)

【代码】蓝桥杯(幸运数字)

2024-03-16 20:53:39 126 1

原创 LeetCode2024年3月16日每日一题(2684. 矩阵中移动的最大次数 )

这段代码实现了一个在二维网格上进行深度优先搜索(DFS)的算法,用来寻找从网格的左侧到任何位置所能达到的最大移动步数。移动规则是从当前位置只能向右上、正右或右下方向移动,并且移动的目标位置上的值必须大于当前位置上的值。它尝试向右上、正右、右下移动,只有在新位置的值大于当前位置的值时才会进行移动。:这个方法是深度优先搜索的核心,它尝试探索所有可能的移动路径,并更新全局最大值。数组,然后对网格的每一行的第一列进行遍历,从每个这样的位置出发调用。接下来,我将在代码中添加相应的注释,以便更好地理解每个部分的功能。

2024-03-16 13:14:27 281 1

原创 蓝桥杯JAVA大学省赛A组(6.平均)

(即超过了应该保留的元素数量),就从队列中移除元素并将其值加到总和。方法,它从优先队列中移除并返回队首元素(最小的元素,因为。:由于目标是保持每个分类中的元素数量不超过总数的十分之一(对于每对数字,第一个数字。对象,每个用于存储一组特定分类的整数值。表示分类(假设这里是0到9之间的数字),第二个数字。:对于每个优先队列(每个分类),只要队列的大小大于。中,以确定每个分类队列中应该保留的元素数量。默认是自然排序的,即数字较小的优先级高)。是该分类下的具体值。),计算这个值并存储在。:打印计算得到的总和。

2024-03-15 20:28:48 188 1

原创 LeetCode2024年3月15日每日一题(2312. 卖木头块)

跟踪已计算的状态)来有效解决切割和销售木材以实现最大可能利润的问题。探索将木材切成较小部分的所有可能方式,确保实现最大可能的利润。这段代码使用动态规划和记忆化(在。中缓存中间结果,并使用。

2024-03-15 14:17:46 622

原创 LeetCode2024年3月14日每日一题(2789. 合并后数组中的最大元素)

举个例子,如果我们使用单调栈来找到最长的递增子序列,栈中的每个元素都比前一个元素大。单调栈是一种特殊的数据结构,它在算法设计中被广泛使用,尤其是在处理与栈相关的问题时,如括号匹配、最长有效括号子串、最小窗口子串等。单调栈的关键在于它能够利用栈的后进先出(LIFO)特性,以及栈内元素的有序性,来快速定位和解决问题。这种情况下便可以合并,所以我们便选择从后往前遍历这个数组,将其加入到一个单调递增栈中,如果准备入栈的元素比栈顶的元素小,便将两者累加后再加入栈中,反之则直接入栈。一个递减单调栈则是严格递减的。

2024-03-14 18:33:02 1098

原创 二维前缀和知识讲解+例题

二维前缀和是一种数组处理技术,它在处理二维数据(如矩阵)时非常有用。它的概念源自于一维前缀和,但扩展到了两个维度。二维前缀和的主要思想是将矩阵中的每个元素与其上方和左方的元素进行累加,从而快速计算出矩阵中任意子矩阵的元素和。定义如下:设有一个二维矩阵A,其大小为m x n,即包含m行和n列。矩阵A的元素表示为A[i][j],其中i表示行索引,j表示列索引。二维前缀和矩阵P也具有相同的大小m x nP[i][j]A[i][j]i = 0j = 0P[i][j]A[i-1][j]A[i][j-1]

2024-03-14 17:36:17 1056

原创 操作系统进程管理(一)

操作系统第一节:进程与线程文章目录操作系统前言一、进程是什么?二、使用步骤1.引入库2.读入数据总结前言记录生活,记录日常一、进程是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warnin

2021-09-10 10:48:54 85

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除