12 2019 档案
摘要:解法一 因为前面已经有 这道题目的铺垫,所以第一个想法是合并 个链表,那就两两合并,所以解法一的思路比较简单。 解法二 使用最小堆 首先建立一个最小堆,将 `l2 l3 tail l1 l1 tail l2 l2`中的下一个元素插入到最小堆中,此时最小堆内元素为{2,3,4},重复这个过程,直到最小
阅读全文
摘要:第一种解法 链表删除节点关键是找到待删除节点的前一个节点。另外就是注意要删除头节点的情况。在上面的代码中 只是把头节点的下一个元素返回了,并没有真正意义上的释放头节点指向的内存。因此将代码修改如下: 修改后代码 快慢指针法 声明一个快指针 和一个慢指针 。首先 移动到待删除节点 之前,然后 和`sl
阅读全文
摘要:出错误的解法一 出错误的解法二 AC版代码1 这一版代码其实有很大的优化空间,首先不需要一开始对 和 的判空,因为在 循环中已经处理过这个问题。经过优化后的代码如下: AC版代码2 另一种思路 这道题目并没有说不可以更改 和`l2`,因此又有如下代码: 这次代码的思路是直接把 或者 的节点摘除贴在
阅读全文
摘要:题目思路 "题目来源" C++代码实现
阅读全文
摘要:题目来源 "题目来源" C++代码实现
阅读全文
摘要:思路1 出错代码: code2 代码出错 出错在 当 时可以测出这个bug。 code3 修改后的代码,果然不出我所料,超时了。跑了几个数据都通过了,但是当 时,leetcode提示 。 再一次出错的代码
阅读全文
摘要:题目思路 "题目来源" C++代码实现
阅读全文
摘要:后序遍历二叉树(非递归实现) "题目来源" C++代码实现 将最后的 向`result`中倒数据改为如下代码也可: 第一次出现BUG: 最后发现BUG出现在 每pop出一次数据, 就会减一,同时 ,导致过早的结束了这个循环,正确的写法如下:
阅读全文
摘要:中序遍历二叉树(非递归) 使用一个辅助栈 "题目来源" C++实现
阅读全文
摘要:在行列都排好的矩阵中找数 "题目来源" 题目思路 C++代码实现
阅读全文
摘要:题目思路 "题目来源" C++实现
阅读全文
摘要:题目思路 使用队列结构来模拟栈,要求实现栈的四个常用函数。 可以使用两个队列,一个队列为data队列,一个为help队列。当压入元素num时,即执行 时将数据插入到data队列的队尾。当执行 或者 时,先将data队列中的元素插入到help队列中,使data队列仅剩余一个元素,将这个元素弹出即可(也
阅读全文
摘要:leetcode链表部分题目 https://zhuanlan.zhihu.com/p/29800285 《[Leetcode][链表]相关题目汇总/分析/总结》 leetcode堆部分题目 https://www.cnblogs.com/zhangwanying/p/9357141.html 《【
阅读全文
摘要:O(NlogN)的时间复杂度+O(1)的空间复杂度 思路:先排序,然后输出第k大的元素即可,排序的时间复杂度是 ,输出第k大元素的时间复杂度为 Quick Sort 的思想 代码实现: class Solution { public: int findKthLargest(vector& nums,
阅读全文
摘要:题目思路 代码实现 + 1 code1 + 2 code2 code2对于递增序列,如{1,2,3,4,5}输出的值不正确。 code1和code2都是有问题的代码,稍后将正确代码上传。 正确的代码 code1和code2使用递减序列和递增序列就能测出来代码有问题,去网上参考了一下其他人的代码,正确
阅读全文
摘要:问题的描述 给定一个数组arr和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组中间,大于num的数放在数组的右边。 要求额外空间复杂度为O(1),时间复杂度为O(N)。 C++代码实现
阅读全文
摘要:题目思路 实现代码
阅读全文
摘要:题目思路 健身回来再写 哈哈 反正没人看我的博客 代码: 参考资料 1 https://www.cnblogs.com/mozi song/p/9626067.html 《120. Triangle》 2 https://leetcode.com/problems/triangle/discuss/
阅读全文
摘要:思路 这个题目感觉是简单一些的DP问题,假设 ,那种有两种走法, 则有3种走法,那么我猜想 ,则走法应该是 n = 2的走法 + n = 3的走法,即 。经过验证发现确实是这样。那么剩下编码的问题就比较简单了。 解法1 解法2 使用vector时总是犯的一个错误 vector中push_back()
阅读全文