- 博客(11)
- 收藏
- 关注
原创 从0开始刷力扣-58.最后一个单词长度
看到的时候就想到很笨的方法,就是利用一个计数器,遍历每一个字符,不为空格计数器++,为空的时候计数器归0,在遍历下一个字符之前,先判断计数器是否为空,如果不为空就设置返回值为当前计数器的值,这样可以防止字符串最后有空格导致的返回为0;然后看了题解发现,诶,可以反向遍历,这就可以非常快的拿到最后一个单词了。
2025-01-07 14:29:19
268
原创 从0开始刷力扣-35.搜索插入位置
要求O(logn)的时间复杂度,咱们可以用二分查找,设定一个初始为0的左指针,length-1的右指针,然后不断比较指针中间值对应数值与target的大小关系,知道找到target比配数组位置,或者左指针在右指针右边返回索引失败。
2025-01-07 14:12:29
157
原创 从0开始刷力扣-28.找出字符串中第一个匹配项的下标
首先想到的就是两层循环,外层循环遍历字符串的每一个字符,内存循环对比从当前字符往后是否都和子串的字符相同,然后可以利用flag来进行标识。然后我看题解说能用那个KMP算法,但我没太搞懂,下次再说好了。
2025-01-06 13:35:32
137
原创 从0开始刷力扣-27.移除元素
然后构造两个指针l,r,利用循环不断使得r往后遍历,如果r所匹配数组的值不等于val,就可以给l所在位置赋值,然后l后移,知道r与数组长度相等退出循环。当然需要排除数组为空的特殊情况。我的第一想法是先给数组排个序,
2025-01-04 19:35:01
174
原创 从0开始刷力扣-26.删除有序数组中的重复项
题目给定的已经是有序数组,那么我们只需要利用两个指针l和r,l负责记录不重复的元素,r往后遍历,遇到重复的继续往后,不重复的时候把值赋给l指针指向位置,l++,当然,还要考虑nums为空的特殊情况。
2025-01-04 19:18:18
137
原创 从0开始刷力扣-14.最长公共前缀
然后发现可以在此基础上再优化,比如当某一次最长公共子字符串为空时直接返回空,不用继续遍历。然后看了题解发现我们的解法就是所谓的横向,除此之外还有纵向分治思想和二分查找。
2025-01-01 14:39:56
289
原创 从0开始刷力扣-9. 回文数
但是这样呢-121也变成了回文数,所以我又在前面加上验证x正负的语句,但我觉得这个解法不太行,于是去看了题解,思想很巧妙:先去除开头为0,以及负数这样的临界值,然后把后半数字逆转来看和前半部分一不一致。
2024-12-28 21:00:01
333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人