自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(288)
  • 收藏
  • 关注

原创 day-112 删掉一个元素以后全为 1 的最长子数组

用一个变量统计窗口内0的个数,首先窗口右边界不断右移,如果窗口内0的个数大于1,则进行左窗口右移,知道0的个数小于等于1,用变量ans统计最长数组长度(r-l)变长滑动窗口:目要求删掉一个元素,返回最长的且只包含 1 的非空子数组的长度,那么我们只需要返回最长的包含一个0的子数组长度-1。

2025-03-31 12:57:43 188

原创 day-112 判断一个括号字符串是否有效

用两个数(max,min)统计(的范围,当不可修改时且遇到(,min++,max++;当不可修改时且遇到)min–,max–;当可以修改时,min–,max++注意,当min==0时遇到可修改,只能取),即令min=1。

2025-03-26 19:18:58 277

原创 day-112 k-avoiding 数组的最小总和

题目中告诉我们不存在任何求和等于 k 的不同元素对,且数组所有元素都不同。我们知道元素对和为k的组合方式有1和k-1,2和k-2…因为要返回可能最小值,那么我们肯定取1,2,3…k,k+1,k+2…我们只需返回1,2,3…k/2,k,k+1,k+2…(长度要为n)的和即可。

2025-03-26 11:04:42 195

原创 day-111 可互换矩形的组数

然后对于宽高比相同的矩形个数i,那么可换组数为1,2,3…利用哈希表存储宽高比相同的矩形个数。

2025-03-22 20:36:47 243

原创 day-110 下降路径最小和 II

暴力求解,从第二行开始,对于每一行的的任意元素,到当前位置的最小和为上一行且与当前元素不在同一列的元素最小和加上当前元素。最后我们只需返回第grid.length-1行的最小元素即可。

2025-03-21 15:36:53 170

原创 day-109 转换二维数组

利用哈希表存储每个数字出现的次数,然后循环遍历key值,将key值对应value值大于0的key值存入List,最后将List存入List。当List为空时,不要存入List,否则会多一行空行。

2025-03-19 09:58:28 133

原创 day-108 使字符串平衡的最小交换次数

从左向右遍历字符串,用一个变量num(初始为0)记录’[‘的数量,遇到’[‘num++,遇到’]‘则num–,如果num<1且当前为’]‘则需要交换,运用贪心的思想,首先将最后面的’]'交换到前面。关键:可以不用真的交换,因为每次交换的排在最后的’[‘,所以不存在影响交换次数的情况,所以遇到num<1且当前为’]'的情况,只需将num++和交换次数++

2025-03-18 15:17:17 205

原创 day-107 元音辅音字符串计数 I

滑动窗口:用滑动窗口记录元音至少出现一次且每个辅音至少出现k的子字符串个数,记作getnum(k)我们需要返回的就是getnum(k)-getnum(k+1)

2025-03-14 16:42:45 146

原创 day-106 每一个查询的最大美丽值

查询queries[j]能得到的最大值使用二分查找,只有当当前price<=queries[j],且下一个price>ueries[j]或者当前是最后一个price才返回当前的美丽值。二分查找:首先将items按照每行第一个元素从小到大排序,再将每个price能得到的最大美丽值计算出来,然后对于每一次查询,只需返回queries[j]能得到最大美丽值即可。

2025-03-09 20:04:55 210

原创 day-106 统计放置房子的方式数

动态规划:因为中间有街道隔开,所以只需计算一边街道的排列方式,最后计算平方即可。动态转换方程:f[i]=f[i-1]+f[i-2]

2025-03-09 13:48:37 257

原创 day-105 破坏回文串

当字符串长度为1时,直接返回空串,如果长度大于1,对字符串从前往后遍历,当遇到某个字符串不为a时,那么直接将该字符改为a返回即可(注意:如果该字符恰好位于字符串正中央时,不能修改返回,应为修改了还是回文字符串),如果遍历结束后全为a,则将最后一个字符变为b返回。因为要使字符串的字典序最小,所以我们应尽量改前面的字符,这样才能保证字典序最小。

2025-03-05 19:25:32 141

原创 day-104 组合总和 Ⅳ

假设dfs(target)表示组成target的组合数,可得转换方程dfs(target)=dfs(target-nums[0])+dfs(target-nums[1])…注意:nums[i]需要小于等于当前的target。

2025-01-03 19:44:38 465

原创 day-103 课程表

用一个数组记录每个结点的入度,将入度为零的节点序号加入一个队列中,同时用一个邻接表记录每个节点和他的后续节点,每将一个节点加入队列中,则将其后续节点的入度减一,最后判断是否所有节点都进行了排序。拓扑排序,本题210. 课程表 II思路一样,只是不需要返回具体的拓扑序列。

2024-12-31 16:30:52 212

原创 day-103 课程表 II

用一个数组记录每个结点的入度,将入度为零的节点序号加入一个队列中,同时用一个邻接表记录每个节点和他的后续节点,每将一个节点加入队列中,则将其后续节点的入度减一。

2024-12-31 16:23:16 283

原创 day-102 二进制矩阵中的最短路径

从起点依次向八个方向尝试(之后也一样),如果某个位置在矩阵内且值为0且没有访问过,将其添加到一个队列中,依次类推,直到到达出口。

2024-12-30 19:09:52 437

原创 day-102 二叉树中的链表

对二叉树进行遍历,每到一个新节点判断当前的字符串t长度是否大于等于的长度,如果满足,再将t从末尾截取s.length()长度的子串与s进行匹配,若匹配成功,结果为true,直到遍历完整棵树。DFS,先将链表转换为字符串s在进行匹配。

2024-12-30 15:09:13 327

原创 day-101 飞地的数量

从矩阵的四周边界中的陆地进行深度优先搜索,将访问过的陆地进行标记,所有边界位置都进行尝试后,还没被访问过的陆地数即为飞地的数量。

2024-12-28 19:24:47 187

原创 day-101 边界着色

对于每一个满足条件的位置,还需判断该位置是否属于边界,如果是边界,则将其赋值为color。注意:不要在同一个数组里面一遍赋值一遍判断边界,这会导致错误答案。DFS,从给定的(row,col)位置开始深度优先搜索。

2024-12-28 15:00:03 609

原创 day-101 网格图中鱼的最大数目

将每一块不相邻的水域的鱼总和计算出来,返回鱼数量最多的那一块即可。每次找到一个还未搜索的水域,利用DFS得到与其相邻水域鱼的总和,直到所有水域都被搜索。DFS(深度优先搜索)

2024-12-28 10:17:52 316

原创 day-100 查询数组中元素的出现位置

对于每一次查询,如果出现次数小于queries[i],则赋值为-1,否则将链表中索引为queries[i]-1的值赋值。使用一个链表记录x出现的所有索引即可。

2024-12-27 10:40:36 170

原创 day-99 半径为 k 的子数组平均值

创建一个长度为nums.length的数组,先将全部元素赋值为-1,然后进行就是滑动窗口的一般思路。注意:当k=0时,直接就是返回数组本身。滑动窗口,此处窗口大小为2*k+1。

2024-12-25 19:53:38 142

原创 day-99 吃苹果的最大数目

利用PriorityQueue模拟最小堆,由于需要存储腐烂天数和每天的苹果数量,所以可以用int[]类型的优先队列,第一个元素存储腐烂时间,第二个元素存储剩余苹果数量。最小堆+贪心,每次吃掉最快腐烂的苹果。

2024-12-25 17:20:08 218

原创 算法-最小(大)堆

可以用PriorityQueue模拟最小(大)堆。

2024-12-25 17:13:34 98

原创 算法-滑动窗口

核心思想是维护一个固定大小的窗口,随着新数据的到来,窗口会向前滑动,移除窗口中最早的数据,同时加入新数据。

2024-12-25 16:26:35 84

原创 day-99 切蛋糕的最小总开销 I

把每一块 1 x 1 的蛋糕看做一个节点,现在每个节点与上下左右相邻的节点(如果存在)连接在一起,我么需要从这个图中找出最小生成树。每次找到最小的边,将其加入最小生成树,最后返回即可。注意:如果选择一条横向边,那么要将其乘以(n-j)在,这是因为纵向每切一刀,当前横向就得就得多切一刀。参考灵神,利用最小生成树来解决。

2024-12-25 15:58:26 421

原创 day-98 大小为 K 且平均值大于等于阈值的子数组数目

定长滑动窗口,计算每个窗口内的平均值,如果大于threshold,ans++

2024-12-23 15:05:15 193

原创 day-97 将整数按权重排序

由题意可得,排序位置由两部分决定,起主要作用的是数字的权重,起次要作用的是数字本身值的大小,且把题目告诉了1

2024-12-22 20:44:57 474

原创 day-96 根据第 K 场考试的分数排序

利用函数Arrays.sort(score,(a,b)->b[k]-a[k])进行排序,表示将数组score的第k+1列从大到小排序。注意:不要直接return。

2024-12-21 10:52:23 204

原创 day-95 定长子串中元音的最大数目

定长滑动窗口,先统计0至k-1有多少个元音字母,然后依次将窗口后移。每次移动考虑新加入的单词是否是元音字母,移除的单词是否是元音字母。

2024-12-20 19:10:49 260

原创 day-94 找到两个数组的前缀公共数组

因为题目告诉1

2024-12-19 19:03:00 158

原创 算法-字典树

【代码】算法-字典树。

2024-12-18 15:01:08 309

原创 day-93 数组大小减半

因为题目中已经告诉arr[i]的取值范围,所以直接新建一个10001长度的数组,用于统计每个数字出现的次数。将每个数字出现字数进行统计,优先把出现次数高的数字删除,直至数组大小减半即可。

2024-12-15 10:36:07 137

原创 day-92 生命游戏

直接暴力判断每个位置的八个相邻位置中1的个数,再按照要求判断细胞的生死即可。注意不要在同一个数组里既判断又修改。

2024-12-12 18:42:43 209

原创 day-92 购买物品的最大开销

排序后每一天购买开销最小的那件物品,直到买完所有物品。只需将数组里面的所有值进行排序即可。

2024-12-12 18:37:38 262

原创 day-91 找到冠军 II

因为队伍按照0到n-1进行编号,所以可以用一个长度为n的数组表示每支队伍,索引i即代表队伍的编号,遍历edges,将较弱的队伍标记为-1,最后统计标记为0的队伍即可。根据edges将所有弱的队伍标记为出来,然后只需统计那些不存在强于自身的队伍的数量,如果数量为1,该队为冠军,如果数量不为1,返回-1。

2024-12-08 10:52:14 197

原创 动力商城-05 阿里云短信服务

【代码】动力商城-05 阿里云短信服务。

2024-12-07 14:47:18 183

原创 day-90 使数组为空的最少操作次数

对于每个数字(假设出现次数num),如果num等于1,返回-1;如果num%3等于0,返回num/3;如果num%3不等于0,返回num/3+1。统计每个数字出现的次数,计算每个数字的操作次数,将所有操作次数累加返回即可。

2024-12-06 16:15:49 140

原创 day-89 只出现一次的数字 III

统计每个数出现的次数,返回只出现一次的那两个数即可。本题与136. 只出现一次的数字思路一样。

2024-12-03 13:26:12 102

原创 day-89 只出现一次的数字 II

统计每个数出现的次数,返回只出现一次的那个数即可。本题与136. 只出现一次的数字思路一样。

2024-12-03 13:22:14 91

原创 day-88 两棵二叉搜索树中的所有元素

遍历两棵树,将所有元素加入同一个链表中。最后将所有元素进行升序排序后返回即可。

2024-12-01 16:57:20 231

空空如也

空空如也

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

TA关注的人

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