- 博客(9)
- 收藏
- 关注
原创 Leetcode hot100 图论
题目描述:给予一个二维网格grid,网格中“1”表示陆地,“0”表示水。计算网格中岛屿的数量。(岛屿只能由水平方向和垂直方向上的陆地组成)。返回值:岛屿的数量。思路:(1)遍历二维网格,一旦遇到某个格子值为“1”,则从这个格子开始进行dfs,岛屿数量结果res++。dfs的逻辑见(2)。(2)dfs,参数:网格,x,y。a.判断[x,y]是否在网格范围内,如果不在直接return,否则进行接下来的步骤;
2025-07-18 21:27:12
604
原创 Leetcode h100 矩阵
题目描述:给定一个矩阵,如果矩阵中某位置的数值为0,则将该位置同行同列的数值全部修改为0。返回值:修改后的矩阵思路1:(1)定义两个标记数组,分别记录各行各列是否出现0,全部初始化为false。(2)遍历矩阵,更新标记数组的值,如果该位置出现了-,则令该位置的行和列对应在标记数组中的值为true。(3)再次遍历矩阵,如果所遍历到的位置(i, j),行标记数组或列标记数组对应的位置为true,则将该位置上的数值修改为0。思路2:看了官方题解的解法。
2025-07-02 19:09:17
521
原创 Leetcode hot100 普通数组
题目描述: 给定一个整数数组,求出数组中最大的连续子数组和。返回值:连续子数组的最大和。思路:感觉这道题比较简单。(1)定义一个sum和max,sum用来存储遍历到当前元素的最大连续和(包含了当前遍历的元素),max用来存储最后最大的结果。(2)遍历数组。(3)当叠加当前元素值到sum,更新max为max和sum的最大值;然后如果sum<0,则重置sum等于0(因为这时sum如果小于0,后面不论数值是多少,相加只会减小)。不断重复(3),直至遍历完所有元素。
2025-06-23 21:40:40
364
原创 LeetCode hot100 滑动窗口
题目描述:找出给定字符串s的的最长。返回值:最长子串的长度思路:要求不含重复字符的,那肯定首先想到set集合。(1)定义set,存储不含重复字符的子串;定义两个指针,分别为left和right,left指向不含重复字符的子串的开始,right指向子串的结束的下一个字符;。(2)right指针遍历字符串s。(3)如果right指向的字符不在set在中,则将其加入set,right后移一位;
2025-05-27 21:25:50
318
原创 LeetCode hot100 双指针
题目描述:将一个数组中所有的0值移动到数组的末尾(也就是说移动值,使得数组中所有的非零值都在左部分,0值都在右部分),要保持非零值的相对位置。返回值:无返回值,原数组上原地移动思路:自己的思路,并没有用到双指针(1)遍历数组。设置一个计数值count,用于记录遍历到当前的值时出现的0的个数。(2)如果当前的值是0,count++,遍历下一个;如果当前的值是非0,则令num[i-count] = num[i],相当于截止到目前有多少个0,就往前移动几位。重复(2),直至遍历完整个数组。
2025-05-20 21:46:42
626
原创 LeetCode hot100 哈希部分思路总结
也就是说如果当前遍历的整数是5,则看5-1=4是否在哈希表中(2)为什么要判断整数-1是否在哈希表中:因为如果在,那说明当前整数的最长连续序列一定是小于当前整数-1开始的最长连续序列的(至少多了“当前整数-1”这个值嘛)(3)判断key是否在哈希表中,如果存在则直接在该key的value(是一个字符串list)中加入当前str;(4)将<当前key,list>添加到哈希表中(java语言添加不用考虑key是否会重复的问题,会自动覆盖更新value),重复(1)(2)(3)直至遍历完所有的字符串。
2025-05-15 16:45:24
680
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅