随笔分类 - LeetCode
摘要:这次周赛比较惨,只做出了第一个题目。最终排名1700+ 1486. 数组异或操作 第一个题目比较简单,就是去模拟异或的过程即可。 class Solution { public: int xorOperation(int n, int start) { vector<int> nums; for(i
阅读全文
摘要:刷leetcode的心得 最近一直在刷leetcode,从一开始刷了十几个题目,到现在刷了快90个题目了,总结出来了刷leetcode的三个法宝 艾宾浩斯记忆曲线 用艾宾浩斯记忆曲线来记录自己刷了多少题,以及每天刷了那些题。我现在的心态是贪多,总是不想刷那些重复刷过的题,这样很不好。要督促自己,既要
阅读全文
摘要:递归解法 由暴力递归而来的DP解法 这次只需要线性空间的内存即可做到。 参考资料 "Decode Ways" " LeetCode 91. Decode Ways"
阅读全文
摘要:解法一 因为前面已经有 这道题目的铺垫,所以第一个想法是合并 个链表,那就两两合并,所以解法一的思路比较简单。 解法二 使用最小堆 首先建立一个最小堆,将 `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++实现
阅读全文
摘要:题目思路 使用队列结构来模拟栈,要求实现栈的四个常用函数。 可以使用两个队列,一个队列为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使用递减序列和递增序列就能测出来代码有问题,去网上参考了一下其他人的代码,正确
阅读全文
摘要:题目思路 实现代码
阅读全文
摘要:题目思路 健身回来再写 哈哈 反正没人看我的博客 代码: 参考资料 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()
阅读全文
摘要:思路1 刚看到这道题的时候,第一个思路还是DFS,但是考虑到前面几个问题,怕DFS超时,所以直接使用DP。 思路2 动态规划 题目中给出输入样例为: DP需要维护一个二维数组,dp[i][j]表示到(i,j)的最短的路径和。 首先看两条边,两条边的走法比较单一,只能横着走过去或者竖着向下走,因此dp
阅读全文
摘要:思路1 这个题目第一个思路还是用DFS,和第62题一样,但是在递归的时候需要判断有无障碍物。因为第62题用的DFS,Leetcode提示Time Limit Exceeded,所以这道题没有尝试DFS的做法,而是直接使用了DP。 思路2 根据第62题可以得到状态转移方程为dp[i][j] = dp[
阅读全文