尹啟坊
尹啟坊
全部文章
题解
归档
标签
去牛客网
登录
/
注册
尹啟坊的博客
全部文章
/ 题解
(共17篇)
题解 | #矩阵的最小路径和#
两种方法解决最小路径和的问题,一种方法是递归(超时),另一种方法是动态规划。其实动态规划和递归原理一样,都是将大问题转化为小问题求解的方法。本题的大小问题关系是:到nums[i][j]的最小路径和等于min(到上方nums[i-1][j]的最小和,到左方nums[i][j-1]的最小和) + num...
递归
动态规划
2021-06-16
0
366
题解 | #重排链表#
快慢指针找到链表中点,并将链表划分为前后两部分,然后将前后两部分合并。 class Solution { public: void reorderList(ListNode *head) { // 重排链表,可以用快慢指针找到链表的中间,并划分链表,然后将后边反转,然后进行两...
2021-06-16
0
347
题解 | #括号序列#
用哈希表和栈解决括号序列有效性的问题先用哈希表来保存右括号和左括号的对应关系,设置一个栈保存左括号对括号序列进行遍历,如果是左括号,则进栈,如果是右括号,判断是否栈空,栈空或栈顶元素不等于相应的右括号,则括号序列不合法,return false;遍历完后,如果栈空,则有效,栈非空,说明栈中的左括号没...
栈
2021-06-14
0
339
题解 | #判断一个链表是否为回文结构#
思路是遍历所有结点,构造一个数组,并反转数组,然后顺序与链表结点比较,只比较一半即可判断是否是回文结构 // 注意:快指针一次走两步,慢指针一次走一步,可以实现寻找链表的中间结点 // 空间复杂度为1的思路是通过快慢指针找到中间结点,然后将中间结点以后的结点反转,然后分别从两条链的链首开始遍历,判断...
2021-06-14
0
329
题解 | #删除链表的倒数第n个节点#
快慢指针法,要注意,慢指针指向结点的下一个结点才是要删除的结点,如果慢指针指向的结点是要删除的结点,那么就不好删除这个结点。 同样本题需要设置一个yummyhead结点来保证循环的一致性。 class Solution { public: /** * * @param ...
&&
快慢指针
2021-06-12
1
421
题解 | #删除有序链表中重复出现的元素#
记住,是删除结点,所以至少需要三个指针,p、cur、q。可以设置一个yummyhead结点来保证循环的一致性,在循环的过程中,可以保证p结点和cur结点永远不相同,只比较cur和q即可。当cur和q相等时,用一个循环寻找第一个和cur不相等的q结点,让p结点指向q结点即可,这样就删除中间重复的cur...
2021-06-12
0
346
题解 | #链表中的节点每k个一组翻转#
用yummyhead的非递归方法,先获取每组元素,如果够k个元素就反转。反转通过头插法来实现。 class Solution {public: /* * * @param head ListNode类 * @param k int整型 * @return Lis...
2021-06-11
1
425
首页
上一页
1
2
下一页
末页