
力扣每日一题
力扣每日一题,尽力坚持
菜-卷
欲买桂花同载酒,终不似,少年游......
展开
-
day-112 删掉一个元素以后全为 1 的最长子数组
用一个变量统计窗口内0的个数,首先窗口右边界不断右移,如果窗口内0的个数大于1,则进行左窗口右移,知道0的个数小于等于1,用变量ans统计最长数组长度(r-l)变长滑动窗口:目要求删掉一个元素,返回最长的且只包含 1 的非空子数组的长度,那么我们只需要返回最长的包含一个0的子数组长度-1。原创 2025-03-31 12:57:43 · 211 阅读 · 0 评论 -
day-112 判断一个括号字符串是否有效
用两个数(max,min)统计(的范围,当不可修改时且遇到(,min++,max++;当不可修改时且遇到)min–,max–;当可以修改时,min–,max++注意,当min==0时遇到可修改,只能取),即令min=1。原创 2025-03-26 19:18:58 · 286 阅读 · 0 评论 -
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 · 213 阅读 · 0 评论 -
day-111 可互换矩形的组数
然后对于宽高比相同的矩形个数i,那么可换组数为1,2,3…利用哈希表存储宽高比相同的矩形个数。原创 2025-03-22 20:36:47 · 254 阅读 · 0 评论 -
day-110 下降路径最小和 II
暴力求解,从第二行开始,对于每一行的的任意元素,到当前位置的最小和为上一行且与当前元素不在同一列的元素最小和加上当前元素。最后我们只需返回第grid.length-1行的最小元素即可。原创 2025-03-21 15:36:53 · 172 阅读 · 0 评论 -
day-109 转换二维数组
利用哈希表存储每个数字出现的次数,然后循环遍历key值,将key值对应value值大于0的key值存入List,最后将List存入List。当List为空时,不要存入List,否则会多一行空行。原创 2025-03-19 09:58:28 · 139 阅读 · 0 评论 -
day-108 使字符串平衡的最小交换次数
从左向右遍历字符串,用一个变量num(初始为0)记录’[‘的数量,遇到’[‘num++,遇到’]‘则num–,如果num<1且当前为’]‘则需要交换,运用贪心的思想,首先将最后面的’]'交换到前面。关键:可以不用真的交换,因为每次交换的排在最后的’[‘,所以不存在影响交换次数的情况,所以遇到num<1且当前为’]'的情况,只需将num++和交换次数++原创 2025-03-18 15:17:17 · 213 阅读 · 0 评论 -
day-107 元音辅音字符串计数 I
滑动窗口:用滑动窗口记录元音至少出现一次且每个辅音至少出现k的子字符串个数,记作getnum(k)我们需要返回的就是getnum(k)-getnum(k+1)原创 2025-03-14 16:42:45 · 158 阅读 · 0 评论 -
day-106 每一个查询的最大美丽值
查询queries[j]能得到的最大值使用二分查找,只有当当前price<=queries[j],且下一个price>ueries[j]或者当前是最后一个price才返回当前的美丽值。二分查找:首先将items按照每行第一个元素从小到大排序,再将每个price能得到的最大美丽值计算出来,然后对于每一次查询,只需返回queries[j]能得到最大美丽值即可。原创 2025-03-09 20:04:55 · 224 阅读 · 0 评论 -
day-106 统计放置房子的方式数
动态规划:因为中间有街道隔开,所以只需计算一边街道的排列方式,最后计算平方即可。动态转换方程:f[i]=f[i-1]+f[i-2]原创 2025-03-09 13:48:37 · 265 阅读 · 0 评论 -
day-105 破坏回文串
当字符串长度为1时,直接返回空串,如果长度大于1,对字符串从前往后遍历,当遇到某个字符串不为a时,那么直接将该字符改为a返回即可(注意:如果该字符恰好位于字符串正中央时,不能修改返回,应为修改了还是回文字符串),如果遍历结束后全为a,则将最后一个字符变为b返回。因为要使字符串的字典序最小,所以我们应尽量改前面的字符,这样才能保证字典序最小。原创 2025-03-05 19:25:32 · 152 阅读 · 0 评论 -
day-104 组合总和 Ⅳ
假设dfs(target)表示组成target的组合数,可得转换方程dfs(target)=dfs(target-nums[0])+dfs(target-nums[1])…注意:nums[i]需要小于等于当前的target。原创 2025-01-03 19:44:38 · 474 阅读 · 0 评论 -
day-103 课程表
用一个数组记录每个结点的入度,将入度为零的节点序号加入一个队列中,同时用一个邻接表记录每个节点和他的后续节点,每将一个节点加入队列中,则将其后续节点的入度减一,最后判断是否所有节点都进行了排序。拓扑排序,本题210. 课程表 II思路一样,只是不需要返回具体的拓扑序列。原创 2024-12-31 16:30:52 · 221 阅读 · 0 评论 -
day-103 课程表 II
用一个数组记录每个结点的入度,将入度为零的节点序号加入一个队列中,同时用一个邻接表记录每个节点和他的后续节点,每将一个节点加入队列中,则将其后续节点的入度减一。原创 2024-12-31 16:23:16 · 292 阅读 · 0 评论 -
day-102 二进制矩阵中的最短路径
从起点依次向八个方向尝试(之后也一样),如果某个位置在矩阵内且值为0且没有访问过,将其添加到一个队列中,依次类推,直到到达出口。原创 2024-12-30 19:09:52 · 445 阅读 · 0 评论 -
day-102 二叉树中的链表
对二叉树进行遍历,每到一个新节点判断当前的字符串t长度是否大于等于的长度,如果满足,再将t从末尾截取s.length()长度的子串与s进行匹配,若匹配成功,结果为true,直到遍历完整棵树。DFS,先将链表转换为字符串s在进行匹配。原创 2024-12-30 15:09:13 · 337 阅读 · 0 评论 -
day-101 飞地的数量
从矩阵的四周边界中的陆地进行深度优先搜索,将访问过的陆地进行标记,所有边界位置都进行尝试后,还没被访问过的陆地数即为飞地的数量。原创 2024-12-28 19:24:47 · 195 阅读 · 0 评论 -
day-101 边界着色
对于每一个满足条件的位置,还需判断该位置是否属于边界,如果是边界,则将其赋值为color。注意:不要在同一个数组里面一遍赋值一遍判断边界,这会导致错误答案。DFS,从给定的(row,col)位置开始深度优先搜索。原创 2024-12-28 15:00:03 · 620 阅读 · 0 评论 -
day-101 网格图中鱼的最大数目
将每一块不相邻的水域的鱼总和计算出来,返回鱼数量最多的那一块即可。每次找到一个还未搜索的水域,利用DFS得到与其相邻水域鱼的总和,直到所有水域都被搜索。DFS(深度优先搜索)原创 2024-12-28 10:17:52 · 329 阅读 · 0 评论 -
day-100 查询数组中元素的出现位置
对于每一次查询,如果出现次数小于queries[i],则赋值为-1,否则将链表中索引为queries[i]-1的值赋值。使用一个链表记录x出现的所有索引即可。原创 2024-12-27 10:40:36 · 178 阅读 · 0 评论 -
day-99 半径为 k 的子数组平均值
创建一个长度为nums.length的数组,先将全部元素赋值为-1,然后进行就是滑动窗口的一般思路。注意:当k=0时,直接就是返回数组本身。滑动窗口,此处窗口大小为2*k+1。原创 2024-12-25 19:53:38 · 147 阅读 · 0 评论 -
day-99 吃苹果的最大数目
利用PriorityQueue模拟最小堆,由于需要存储腐烂天数和每天的苹果数量,所以可以用int[]类型的优先队列,第一个元素存储腐烂时间,第二个元素存储剩余苹果数量。最小堆+贪心,每次吃掉最快腐烂的苹果。原创 2024-12-25 17:20:08 · 224 阅读 · 0 评论 -
day-99 切蛋糕的最小总开销 I
把每一块 1 x 1 的蛋糕看做一个节点,现在每个节点与上下左右相邻的节点(如果存在)连接在一起,我么需要从这个图中找出最小生成树。每次找到最小的边,将其加入最小生成树,最后返回即可。注意:如果选择一条横向边,那么要将其乘以(n-j)在,这是因为纵向每切一刀,当前横向就得就得多切一刀。参考灵神,利用最小生成树来解决。原创 2024-12-25 15:58:26 · 426 阅读 · 0 评论 -
day-98 大小为 K 且平均值大于等于阈值的子数组数目
定长滑动窗口,计算每个窗口内的平均值,如果大于threshold,ans++原创 2024-12-23 15:05:15 · 200 阅读 · 0 评论 -
day-97 将整数按权重排序
由题意可得,排序位置由两部分决定,起主要作用的是数字的权重,起次要作用的是数字本身值的大小,且把题目告诉了1原创 2024-12-22 20:44:57 · 485 阅读 · 0 评论 -
day-96 根据第 K 场考试的分数排序
利用函数Arrays.sort(score,(a,b)->b[k]-a[k])进行排序,表示将数组score的第k+1列从大到小排序。注意:不要直接return。原创 2024-12-21 10:52:23 · 215 阅读 · 0 评论 -
day-95 定长子串中元音的最大数目
定长滑动窗口,先统计0至k-1有多少个元音字母,然后依次将窗口后移。每次移动考虑新加入的单词是否是元音字母,移除的单词是否是元音字母。原创 2024-12-20 19:10:49 · 271 阅读 · 0 评论 -
day-94 找到两个数组的前缀公共数组
因为题目告诉1原创 2024-12-19 19:03:00 · 168 阅读 · 0 评论 -
day-93 数组大小减半
因为题目中已经告诉arr[i]的取值范围,所以直接新建一个10001长度的数组,用于统计每个数字出现的次数。将每个数字出现字数进行统计,优先把出现次数高的数字删除,直至数组大小减半即可。原创 2024-12-15 10:36:07 · 142 阅读 · 0 评论 -
day-92 生命游戏
直接暴力判断每个位置的八个相邻位置中1的个数,再按照要求判断细胞的生死即可。注意不要在同一个数组里既判断又修改。原创 2024-12-12 18:42:43 · 215 阅读 · 0 评论 -
day-92 购买物品的最大开销
排序后每一天购买开销最小的那件物品,直到买完所有物品。只需将数组里面的所有值进行排序即可。原创 2024-12-12 18:37:38 · 272 阅读 · 0 评论 -
day-91 找到冠军 II
因为队伍按照0到n-1进行编号,所以可以用一个长度为n的数组表示每支队伍,索引i即代表队伍的编号,遍历edges,将较弱的队伍标记为-1,最后统计标记为0的队伍即可。根据edges将所有弱的队伍标记为出来,然后只需统计那些不存在强于自身的队伍的数量,如果数量为1,该队为冠军,如果数量不为1,返回-1。原创 2024-12-08 10:52:14 · 206 阅读 · 0 评论 -
day-90 使数组为空的最少操作次数
对于每个数字(假设出现次数num),如果num等于1,返回-1;如果num%3等于0,返回num/3;如果num%3不等于0,返回num/3+1。统计每个数字出现的次数,计算每个数字的操作次数,将所有操作次数累加返回即可。原创 2024-12-06 16:15:49 · 148 阅读 · 0 评论 -
day-89 只出现一次的数字 III
统计每个数出现的次数,返回只出现一次的那两个数即可。本题与136. 只出现一次的数字思路一样。原创 2024-12-03 13:26:12 · 108 阅读 · 0 评论 -
day-89 只出现一次的数字 II
统计每个数出现的次数,返回只出现一次的那个数即可。本题与136. 只出现一次的数字思路一样。原创 2024-12-03 13:22:14 · 98 阅读 · 0 评论 -
day-86 新增道路查询后的最短距离 I
dp[i】表示0号城市到i号城市的最短距离,利用一个二维链表。记录每个城市的前项城市(即有单向道路),那么到达该城市的最短距离即为0号城市到达它所有前项城市的距离的最小值+1,状态转换方程:dp[i]=Math.min(dp[j]+1,dp[i]) j为i的前项城市。动态规划:每次加入一条道路,计算0号城市到n-号城市的最短距离,加入返回的数组。原创 2024-11-19 18:14:06 · 204 阅读 · 0 评论 -
day-17 反转字符串中的单词
利用split()函数和substring函数。原创 2024-11-18 20:48:34 · 151 阅读 · 0 评论 -
day-85 可以到达所有点的最少点数目
遍历List edges将所有没有入度的节点加入返回集合中,最后返回即可。统计没有入度的节点即可。原创 2024-11-18 15:20:36 · 221 阅读 · 0 评论 -
day-84 适龄的朋友
然后再计算两个年龄之间是否可以发消息,如果可以请求总数加上arr[i]arr[j],当两个年龄段相等时单独讨论(此时只需看ages[y]原创 2024-11-17 19:15:45 · 186 阅读 · 0 评论 -
day-83 最少翻转次数使二进制矩阵回文 II
关键在于1的个数要为4的倍数,首先镜像的四个位置肯定一定为4的倍数,如果行和列为奇数则需要单独考虑,如果行和列皆为奇数,那么中心的那个数一定为0。再单独考虑如果行和列为奇数,具体参考灵神。如果diff>0,额外把diff加入答案;如果diff=0,额外把num%4加入答案。原创 2024-11-16 19:42:52 · 388 阅读 · 0 评论