首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
力扣题解
已注销
创建于2023-04-23
订阅专栏
专注力扣题解
暂无订阅
共21篇文章
创建于2023-04-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
力扣 20. 有效的括号
注意 if-else 的条件判断,这道题在处理 if-else 时要注意不能使用 if 代替 if-else,因为每一次循环要么往栈里面添加元素,要么判断是否符合括号匹配规则。另外这道题使用栈 先进后
力扣 459. 重复的子字符串
1、 这道题如果用暴力方法直接在原来的字符串里面找,时间复杂度是 O(n^2)。 2、 使用 KMP 算法求出 next 数组,通过 next 数组找到 next 数组的最后一个元素的值 next[n
力扣 86. 分隔链表
错误的方法:我一开始套用数组排序的方法,想着把小于x的元素都两两交换,但是这道题的数据结构是链表,所以无法倒序遍历。另外这道题采用链表就是想考察链表的相关增、删、改的操作。接下来是正确的方法。 正确的
力扣 92. 反转链表 II
我想到用一次遍历的方法去找到要反转的位置,然后把left到right区间内的结点反转,步骤和力扣上206反转链表方法一样。在遍历到left位置之前要保存left的前一个位置tail1,注意还要保存le
力扣 138. 复制带随机指针的链表
1、这种题首先想到是用哈希表保存每个结点对应的复制结点,然后用递归的方法得到每个复制节点的random域和next域,这种方法是很直观,需要注意每次递归都要判断当前节点是否复制过。 2、另一种方法是在
力扣 21. 合并两个有序链表
起初我是用list1的头节点指向list2的头节点,但是这样做有问题,在处理不同的元素时要不停地保存list1和list2的下一个节点,且容易出错。看完官方的题解,我使用一个新建立的头节点pre,然后
力扣 55. 跳跃游戏
讲一下我的思路 一开始我想的是倒序遍历,查看nums[i]==0的元素前面的值是否大于等于从0开始经过的距离,这种做法条件判断很繁琐,不是正确的做法。 下面讲解正确的做法 从前往后遍历。每次遍历到一个
力扣 19. 删除链表的倒数第N个结点
这一题主要考的是数学关系。 要想通过一趟扫描就找到倒数第n个结点,可以考虑用快的结点比慢的结点多走n步。 然后当快结点的next是null,就停止遍历。当然,为了方便处理链表,我们还是给原来的链表加上
力扣 24. 两两交换链表中的结点
这道题很多细节需要注意。 老规矩,加上虚拟的头节点dummyhead,便于处理。考虑到如果结点数目是奇数,就不再处理最后一个结点,所以while循环里面判断条件就是cur.next!=null &&
力扣 203. 移除链表元素
有个处理链表的技巧,在待处理的链表头加上一个自己设计的头。这个头指向原来链表的头部。 定义一个自己的头节点s,s.next 指向原来链表的头部,这样就不用另外考虑链表的头部元素是val这种特殊情况。然
力扣 27. 移除元素
在不排序的情况下做这道题 这个题目的核心方法是把值等于val的元素用其他的元素覆盖掉。怎么覆盖呢?当然是把元素整体向前面移动。遇到一个值等于val的的元素,就把这个元素后面的所有元素向前移动一格,但是
力扣 904. 水果成篮
需要注意题目的描述有问题,fruits[i]是第i棵树上水果的的种类的代号,一棵树上只有一种水果,不要理解成一棵树上有多种水果。 题目的意思说的很不明白,换成正常人说的话是:在一个数组中找出只包含不多
力扣题解 209. 长度最小的子数组
一、这是一个时间复杂度O(n)的算法。 利用每次遍历一个元素时,如果当前的sum>=target,就会从i到j的范围内找一个更小的子序列,这个子序列的末尾是nums[j],判断这个子序列的和是否满足s
力扣 26. 删除有序数组中的重复项
经典的双指针法删除重复元素 设两个指针,分别是慢指针left和快指针right。当遇到重复元素,慢指针停下来,快指针继续遍历。当遇到不重复的元素,把慢指针的下一个元素的值设为快指针指向的值,然后快指针
力扣 283. 移动零
这类对数组操作的题目一般会限制时间复杂度或空间复杂度并且考察数组不能修改大小的特点。且这类数组题目很灵活,不能简单套用遇到过的题目做法。 对数组元素的删除操作一般是通过覆盖不需要的元素,而非直接去掉不
力扣 474. 一和零
我的想法如下 每次只能从数组里面取一个字符串,计算这个字符串的0的个数和1的个数。 假设有一个背包,每次遍历strs中的字符串,都选择把这个字符串放进背包或者不放进背包。 设dp[i][j]是容量为i
力扣 494. 目标和
这道题可以这样理解:target是由数组里的某些数字加上+号或-号然后求和得到。所以target也等于数组里一些数字减去另一些数字得到的结果。把数组里面前面是正号的元素之和设为left,前面是负号的元
力扣 63. 不同路径 II
这道题和第62题思路一致,但是在初始化和遍历的时候需要注意某个位置有障碍物,需要把这个位置的dp数组设为0,看代码:
力扣 62. 不同路径
方法一 直接使用递归的方法去做,发现时间超时无法通过所有测试,因为使用递归会有max( O(2^m), (2^n) )的时间复杂度,代码如下 方法二 使用动态规划可以保存遍历过的结点的值,降低时间复杂
力扣 70 爬楼梯
1<=n<=45 使用动态规划有五个步骤 确定dp数组及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 对于这个爬楼梯的题目,dp数组的每一项dp[i]可以表示爬到第i阶
下一页