![](https://img-blog.csdnimg.cn/direct/5c5512c3566f417b979f7ea08931b63b.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣每日一题
力扣每日一题,尽力坚持
菜-卷
欲买桂花同载酒,终不似,少年游......
展开
-
day-33 收集垃圾的最少总时间
利用一个二维数组(数组行数为3,分别对应三种垃圾)记录垃圾数量,arr[0][i]表示第i个房子的金属、纸和或玻璃垃圾。将三种垃圾数量(值与时间相同)相加,最后对应垃圾车最远需要走到哪个房间,加上对应的花费时间数。原创 2024-05-11 16:55:14 · 221 阅读 · 0 评论 -
day-37 电话号码的字母组合
设置一个char型的二维数组,每次从号码对应的子母中选出一个,拼接在一起即可。注意:有的数字对应三个字母,有的对应四个字母。原创 2024-06-02 14:19:49 · 219 阅读 · 0 评论 -
day-34 二叉树的锯齿形层序遍历
相较于二叉树的层序遍历,多了一个flag变量,当flag等于0时,把当前层的数组从左到右放入链表,当flag等于1时,把当前层的数组从右到左放入链表。注意:链表删除一个数据后会立即重排,所以删除同一层的节点时,每次都删除第一个节点。原创 2024-05-12 21:54:39 · 214 阅读 · 0 评论 -
day-35 二叉树的右视图
注意:链表删除一个数据后会立即重排,所以删除同一层的节点时,每次都删除第一个节点。根据层序遍历的思路。将每一层的最右边元素加入返回序列即可。原创 2024-05-13 09:41:24 · 205 阅读 · 0 评论 -
day-36 删除链表的倒数第 N 个结点
首先计算出链表的长度,然后删除第n个节点即可,但要注意考虑特殊情况。特殊情况:1.删除节点为最后一个节点。2.删除节点为头结点。原创 2024-06-01 16:06:00 · 241 阅读 · 0 评论 -
day-35 被围绕的区域
检测边界上的字符,如果是O则向周围探测,访问与之连接的不会被覆盖的X。边界探测结束后,没有访问过的O皆会被X覆盖。很明显,只有与边界上的O连接的O才不会X覆盖。原创 2024-05-13 10:35:46 · 204 阅读 · 0 评论 -
day-31 给植物浇水
用一个变量po记录即将浇水的植物编号,当po==plants.length结束while循环。(2)如果当前水量不够,则返回-1处加水再返回,再前进一步浇水。(1)如果当前水足够,则前进一步浇水。原创 2024-05-09 15:43:29 · 159 阅读 · 0 评论 -
day-31 给植物浇水 II
用while(start原创 2024-05-09 21:39:29 · 116 阅读 · 0 评论 -
day-30 三角形最小路径和
典型的动态规划问题,状态方程可以理解为min[i][j]=min[i][j]+Math.min(min[i-1][j-1],min[i-1][j]),在考虑边界的特殊处理即可。最后得到的最后一行中的最小值即为最小路径和。原创 2024-05-07 11:32:55 · 164 阅读 · 0 评论 -
day-32 不同路径 II
典型的DP问题,状态转换方程为dp[i][j]=dp[i-1][j]+dp[i][j-1],边界情况单独讨论。对于第一行:如果当前元素为0且在该元素的同一行的左边不存在1,则路径数皆为1,否则为零。对于第一列:如果当前元素为0且在该元素的同一列的上边不存在1,则路径数皆为1,否则为零。对于其他元素的路径数则按状态转换方程进行计算。最后返回dp[m-1][n-1]即可。原创 2024-05-10 10:32:37 · 157 阅读 · 0 评论 -
day-32 最小路径和
典型的DP问题,状态方程为distance[i][j]=distance[i][j]+Math.min(distance[i][j-1],distance[i-1][j]),边界情况需要单独讨论。4:以上情况皆不满足,则distance[i][j]=grid[i][j]+Math.min(grid[i][j-1],grid[i-1][j])0,则distance[i][j]=grid[i][j]+grid[i-1][j]0,则distance[i][j]=grid[i][j]原创 2024-05-10 09:35:20 · 198 阅读 · 0 评论 -
day-29 旋转链表
找到需要返回的链表的头结点,将其断开为两个链表,再拼接起来即可。例如链表长度为len,那么第len-k个元素即为头结点。因为0原创 2024-05-06 11:19:08 · 236 阅读 · 0 评论 -
day-20 组合总和
注意:res.add(new ArrayList(now)) 不能为res.add(now)),否则为空。思路:利用dfs对所有可能进行尝试,用id作为当前位置的索引,当id。0时,添加当前组合,直至遍历完毕。原创 2024-03-15 21:09:41 · 203 阅读 · 0 评论 -
day-23 岛屿的最大面积
思路:深度优先遍历,对每个是陆地且未曾访问过的位置进行dfs,统计每次进行dfs时的岛屿面积are,ans=Math.max(ans,are)原创 2024-03-18 09:20:53 · 279 阅读 · 0 评论 -
day-20 括号生成
思路:用dfs遍历所有的可能的括号组合,再通过istrue()方法判断是否合法。原创 2024-03-15 12:42:02 · 184 阅读 · 0 评论 -
day-20 二叉树的层序遍历
注意点:ArrayList执行remove之后,索引i会立即重排,注意可能越界。思路:利用队列进行广度优先遍历即可。原创 2024-03-15 16:41:26 · 339 阅读 · 0 评论 -
day-20 跳跃游戏 II
思路:用一个数字来存储到对应索引i的最少跳跃次数,ans[j]=Math.min(ans[j],ans[i]+1)原创 2024-03-15 14:39:39 · 485 阅读 · 0 评论 -
day-20 接雨水
如果Math.min(maxl[i],maxr[i])>height[i] 则当前位置可存储 Math.min(maxl[i],maxr[i])-height[i]的水。思路:用两个数组分别记录height[i]左右两边最高的墙(i。height.length-1不可能存水)遍历heigth。原创 2024-03-15 09:14:22 · 517 阅读 · 0 评论 -
day-22 岛屿数量
思路:深度优先遍历,对每个是陆地且未曾访问过的位置进行dfs,每进行一次,岛屿数量加一。原创 2024-03-17 21:39:29 · 145 阅读 · 0 评论 -
day-21 前 K 个高频元素
思路:用ans[]存储频次最高的k个元素,用anslen[]存储对应的索引,将nums进行排序依次统计每个元素出现次数,再判断是否需要对ans[]和anslen[]进行替换,最后ans即为答案。注意点:遍历结束后,还需要进行依次判断是否替换。原创 2024-03-16 14:09:27 · 205 阅读 · 0 评论 -
day-28 除自身以外数组的乘积
利用两个空数组left(left[i]表示nums下标从0到i的乘积)和right(right[i]表示nums下标从n-1到i的乘积)返回数组nums[i]=right[i+1]*left[i-1],第一个元素和最后一个元素单独考虑。原创 2024-05-05 14:54:09 · 230 阅读 · 0 评论 -
day-26 H 指数
H指数初始化为零,排序后从数组最后一个元素开始,如果当前元素大于等于H指数,则比较前一个元素,并将H指数加1,直到循环结束。利用Arrays.sort()函数排序,然后从后面开始计算H指数。原创 2024-05-04 18:18:25 · 106 阅读 · 0 评论 -
day-25 两数相加
思路:因为两个数字是逆序的,所以只需将对应位置的值相加,有进位则进位,再将结果利用头插法存入一个新的链表。注意点:两个链表不一定一样长。原创 2024-03-21 21:47:13 · 332 阅读 · 0 评论 -
day-25 无重复字符的最长子串
思路:动态规划的思想,遍历字符串,每遇到一个新的字符,将其存入HashMap中,并给其一个唯一值value(value递增),当前字符若与HashMap中的字符都不一样,则存入HashMap中,若已经存在,则将对应value小于当前字符value的字符全部删除,最后返回dp数组的最大值即可。注意点:for循环遍历HashMap时,若调用remove函数,HashMap.会立即重排。原创 2024-03-21 22:04:35 · 249 阅读 · 0 评论 -
day-26 查询网格图中每一列的宽度
利用两个for循环,外层for用于遍历列数,内层for用于计算每一列的宽度。3.当前所在位置的值大于0 则宽度在情况2的基础上再加1。2.当前所在位置的值大于0 则宽度通过不断取商得到。1.当前所在位置的值为0 则宽度为1。原创 2024-04-28 09:28:45 · 127 阅读 · 0 评论 -
day-18 跳跃游戏
参考了答案,遍历整个数组,同时用一个变量记录可以到达的最远距离ans=Math.max(ans,i+nums[i]);遍历结束后如果可以到达的最远距离大于等于数组长度减一(从零开始的)则可以到达最后一个下标。原创 2024-03-12 15:10:16 · 576 阅读 · 0 评论 -
day-17 删除有序数组中的重复项 II
没做出来,参考了官方答案,利用双指针。原创 2024-03-09 10:55:14 · 272 阅读 · 0 评论 -
day-18 猜数字游戏
3.Math.min(arr1[i],arr2[i])即为对应数字的奶牛个数。1.由于两个数字位数相同,所以可以遍历字符串吧,找出公牛个数。2.在通过两个数组分别统计两个数字0-9的个数。原创 2024-03-10 10:55:52 · 184 阅读 · 0 评论 -
day-18 长度最小的子数组
运用队列的思维,求出每种满足题意的子数组长度,最小的即为答案,否则返回0。原创 2024-03-10 17:19:49 · 227 阅读 · 0 评论 -
day-19 合并后数组中的最大元素
思路:从后向前遍历数组,用tans记录每一种可能的最大值,ans为实际最大值。注意:若ans==0,返回nums[0] 要用long。原创 2024-03-14 19:58:42 · 382 阅读 · 0 评论 -
day-17 加油站
自己写的时间复杂度O(n²)时间超时了。原创 2024-03-10 10:43:50 · 189 阅读 · 0 评论 -
day-18 轮转数组
参考答案 进行三次翻转 空间复杂度O(1)时间复杂度为O(n)原创 2024-03-09 13:39:11 · 225 阅读 · 0 评论 -
day-22 最大子数组和
思路:动态规划,dp[i]表示以索引i结尾的最大子数组和,那么如果dp[i-1]>0 dp[i]=dp[i]+nums[i] 如果dp[i-1]原创 2024-03-17 13:53:35 · 211 阅读 · 0 评论 -
day-23 分发糖果
思路:所有位置的糖果数应该满足左规则和右规则 左规则:如果ratings[i]>ratings[i-1],则应该比左边多一颗糖果 右规则:如果ratings[i]>ratings[i+1],则应该比右边多一颗糖果 最终糖果数为ans[i]=Math.max(left[i],right[i])原创 2024-03-18 10:27:25 · 151 阅读 · 0 评论 -
day-24 不同路径
思路:动态规划,因为只能向下或向右移动,所以第一行和第一列的路径数皆为1,其余位置的路径数dp[i][j]=dp[i-1][j]+dp[i][j-1] 最后返回dp[m-1][n-1]即可。原创 2024-03-19 15:20:52 · 115 阅读 · 0 评论 -
day-24 跳跃游戏 III
思路:dfs方法,从开始节点开始进行深度优先遍历,利用一个数组vis[]记录该位置是否被访问过,如果遍历到一个已经访问的位置,返回false 如果遍历到某位置的值为0,返回true。原创 2024-03-19 15:59:16 · 378 阅读 · 0 评论 -
day-24 单词搜索
思路:bfs思想,找到与word第一个字母相同的位置开始bfs,用id记录当前位置,如果id==word.length-1则返回true。注意:bfs的不同访问顺序可能导致结果不同,所以在每次遍历一条路径失败后,需要把相应的vis[i][j]恢复为未访问状态。原创 2024-03-19 14:54:33 · 214 阅读 · 0 评论 -
day-22 三数之和
思路:先对nums[]数组进行排序,i表示第一个数的的索引,i从零遍历到nums.length j表示第二个数的索引,j从i+1开始向后遍历 k表示第三个数的索引,k从nums.length-1向前开始遍历,直到j k相交。注意点:不能重复 所以i j不能取连续相同的数。原创 2024-03-17 19:08:23 · 252 阅读 · 0 评论 -
day-23 N 叉树的层序遍历
注意点:res.remove()执行后,ArrayList的元素索引会改变,可以先添加下一层所有元素后,再将本层元素一起出队。思路:利用bfs,利用队列将当前层的孩子元素加入队列,再将本层元素出队即可。原创 2024-03-18 19:34:10 · 357 阅读 · 0 评论 -
day-24 腐烂的橘子
思路:利用bfs的思想 首先利用bfs遍历值为2的橘子(遍历时1和2都可以走)结束后如果存在某个橘子未被访问过且值为1则返回-1 再利用bfs遍历值为2的橘子 每遍历一次 时间加1 注意不要立即将map的值变为2,可以通过一个缓存数组临时存放 这样即可确定腐烂时间。注意点:map=grid只是把指针给map map改变grid也会改变 map=new int[rows][cols];map=grid map改变grid不会改变。原创 2024-03-19 14:16:20 · 233 阅读 · 0 评论