摘要: 链表中等题(下) LCR 028. 扁平化多级双向链表 class Solution { public: // 递归 Node *generate(Node *head) { if (head == nullptr) return nullptr; // 把后面的扁平化 Node *next = g 阅读全文
posted @ 2024-01-10 00:55 _Sylvan 阅读(29) 评论(0) 推荐(0)
摘要: Top100(上) 散列 1. 两数之和 struct MyListNode { int val; int pos; struct MyListNode *next; }; // 散列表 typedef struct { struct MyListNode *data; } MyHashMap; c 阅读全文
posted @ 2024-01-09 14:52 _Sylvan 阅读(27) 评论(0) 推荐(0)
摘要: 链表中等题(上) 2807. 在链表中插入最大公约数 // 辗转相除 int gcd(int a, int b) { if (a % b == 0) return b; return gcd(b, a % b); } struct ListNode *insertGreatestCommonDivi 阅读全文
posted @ 2024-01-07 02:48 _Sylvan 阅读(55) 评论(0) 推荐(0)
摘要: 前缀和简单题 2574. 左右元素和的差值 int *leftRightDifference(int *nums, int numsSize, int *returnSize) { int *res = (int *) malloc(sizeof(int) * numsSize); *returnS 阅读全文
posted @ 2024-01-03 14:05 _Sylvan 阅读(24) 评论(0) 推荐(0)
摘要: 二分法 222. 完全二叉树的节点个数 /* * 完全二叉树编号从1开始 * 如果第k个节点位于第h层,则k的二进制表示包含h+1位, * 其中最高位是1,其余各位从高到低表示从根节点到第k个节点的路径, * 0表示移动到左子节点,1表示移动到右子节点。 * 通过位运算得到第k个节点对应的路径,判断 阅读全文
posted @ 2024-01-02 14:16 _Sylvan 阅读(31) 评论(0) 推荐(0)
摘要: 二叉树遍历 先序 递归 int *res; void preorder(struct TreeNode *root, int *returnSize) { if (root == NULL) return; // 根左右 res[(*returnSize)++] = root->val; preor 阅读全文
posted @ 2023-12-31 19:28 _Sylvan 阅读(129) 评论(0) 推荐(0)
摘要: 二叉树简单题 2331. 计算布尔二叉树的值 bool evaluateTree(struct TreeNode *root) { // 递归出口 if (root == NULL) return root; if (root->left == NULL && root->right == NULL 阅读全文
posted @ 2023-12-31 02:13 _Sylvan 阅读(31) 评论(0) 推荐(0)
摘要: 哈希表 705. 设计哈希集合 // 拉链法 struct ListNode { int val; struct ListNode *next; }; typedef struct { struct ListNode *data; } MyHashSet; // 模 const int hashSi 阅读全文
posted @ 2023-12-28 18:39 _Sylvan 阅读(42) 评论(0) 推荐(0)
摘要: 算法笔记 散列 字符串散列 // 把字符串当成26进制数,转换成10进制,建立映射关系 int hash(char S[], int len) { int res = 0; for (int i = 0; i < len; ++i) { res = res * 26 + (S[i] - 'A'); 阅读全文
posted @ 2023-12-28 15:12 _Sylvan 阅读(16) 评论(0) 推荐(0)
摘要: 链表简单题 面试题 02.03. 删除中间节点 void deleteNode(struct ListNode *node) { // 转换成删除下一个节点 node->val = node->next->val; node->next = node->next->next; } 1290. 二进制 阅读全文
posted @ 2023-01-28 14:12 _Sylvan 阅读(49) 评论(0) 推荐(0)
摘要: 根据力扣给出的用例,生成对应的链表和树,方便在IDEA上调试,不再需要手动new出一堆节点然后手动拼接 阅读全文
posted @ 2022-07-19 11:19 _Sylvan 阅读(126) 评论(0) 推荐(0)
摘要: 迭代反转整个链表;递归反转整个链表、链表前n个节点以及子链表 阅读全文
posted @ 2022-07-07 15:00 _Sylvan 阅读(69) 评论(0) 推荐(0)
摘要: 给定一串很长的数据流,对该数据流中数据只能访问一次,使得数据流中所有数据被选中的概率相等 阅读全文
posted @ 2022-06-15 11:00 _Sylvan 阅读(53) 评论(0) 推荐(0)
摘要: 前序、中序、后序的递归、迭代以及morris算法;外加一种将右节点压栈的前序遍历 阅读全文
posted @ 2022-06-08 18:02 _Sylvan 阅读(41) 评论(0) 推荐(0)
摘要: 二分边界的常见四种情况 阅读全文
posted @ 2022-05-18 15:41 _Sylvan 阅读(54) 评论(0) 推荐(0)