
剑指offer
剑指offer刷题记录
吃瓜市民
这个作者很懒,什么都没留下…
展开
-
146. LRU 缓存
146. LRU 缓存 单向链表不遍历无法直接删除给定的节点 双向链表因为:哈希表给出待操作的节点指针,需要delete或者moveToHead操作,单向链表无法获取该node的前向节点,删除该节点 链表节点需要key是因为:deleteTail之后,需要把哈希表中对应的key也给删了 // hashTable.begin()返回的是pair<int, Node*>,得用p->first和p->second访问 // 导致"heap-use-after-free"大概率是链表原创 2022-02-21 10:01:20 · 448 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
class Solution { public: TreeNode* mirrorTree(TreeNode* root) { if (root == nullptr) return nullptr; if (root->left == nullptr && root->right == nullptr) return root; // 1. root->right = mirrorTree(root->left原创 2022-02-17 11:37:10 · 250 阅读 · 0 评论 -
剑指 Offer 34. 二叉树中和为某一值的路径
!!!修改全局变量的宗旨,当前节点对全局变量的修改要持续到子节点,但要在进入兄弟节点前取消掉 class Solution { private: vector<vector<int>> res; vector<int> path; int tmpSum = 0; public: vector<vector<int>> pathSum(TreeNode* root, int target) { i.原创 2022-02-17 11:13:12 · 252 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方
剑指 Offer 16. 数值的整数次方 收获: 对于输入要考虑它什么值都能取到,是否会有异常情况,异常情况可以用全局变量/返回值/error报出,可以和面试官讨论用哪种 int的范围,-2147483648~+2147483647,负数比正数多一个(计算机中的正负数表示:正负号由第一位表示,例如8byte的数字,2^8=256可以表示256个数,正数最大01111111=127,以为0的正负都一样,没必要占用正负两种表示,所以10000000没有意义,因此设置了一种巧妙的表示负数的方法:补码:=负数对原创 2022-01-18 20:37:54 · 253 阅读 · 0 评论