摘要:
一些最近想学但是没时间学的资料 本身不是计算机科班出身,所以感觉自己有很多计算机专业的基础课需要补充。但是时间有限,只能先学最重要的内容,下面的文章记录了我认为的计算机专业的基础课和一些相关的资料。 数据结构 浙江大学 MOOC课程 《数据结构》 配套书籍 《数据结构(第二版)》 《STL源码剖析》 阅读全文
摘要:
智能指针的循环引用 class Node { public: shared_ptr<Node> left; shared_ptr<Node> right; Node(int v) { this->value = v; cout << "Constructor" << endl; } ~Node() 阅读全文
摘要:
这次周赛比较惨,只做出了第一个题目。最终排名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++代码实现 阅读全文