随笔分类 -  leetcode

上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要:460. LFU 缓存机制(困难) 题目: get(key) 方法会去缓存中查询键 key,如果 key 存在,则返回 key 对应的 val,否则返回 -1。 put(key, value) 方法插入或修改缓存。如果 key 已存在,则将它对应的值改为 val;如果 key 不存在,则插入键值对  阅读全文
posted @ 2022-02-24 17:25 鸭子船长 阅读(29) 评论(0) 推荐(0) 编辑
摘要:Dajkstra通用模板 用于两结点间最小权重和问题的解决。 Dijkstra 可以理解成一个带 dp table(或者说备忘录)的 BFS 算法,在BFS遍历所有节点的同时,记录并比较权重和。 最后输出Start结点到其他所有节点的最小路径权重和 PS:应用条件:加权有向图,没有负权重边 // 输 阅读全文
posted @ 2022-02-23 19:13 鸭子船长 阅读(124) 评论(0) 推荐(0) 编辑
摘要:277. 搜索名人(中等) 题目: 给你 n 个人的社交关系(你知道任意两个人之间是否认识),然后请你找出这些人中的「名人」。 所谓「名人」有两个条件: 1、所有其他人都认识「名人」。 2、「名人」不认识任何其他人。 在本题中,你可以使用辅助函数 bool knows(a, b) 获取到 A 是否认 阅读全文
posted @ 2022-02-23 10:57 鸭子船长 阅读(143) 评论(0) 推荐(0) 编辑
摘要:思路讲解 261. 以图判树(中等) 题目: 给定编号从 0 到 n - 1 的 n 个结点。给定一个整数 n 和一个 edges 列表,其中 edges[i] = [ai, bi] 表示图中节点 ai 和 bi 之间存在一条无向边。 如果这些边能够形成一个合法有效的树结构,则返回 true ,否则 阅读全文
posted @ 2022-02-22 22:50 鸭子船长 阅读(282) 评论(0) 推荐(0) 编辑
摘要:990. 等式方程的可满足性(中等) 题目: 给你一个数组 equations,装着若干字符串表示的算式。每个算式 equations[i] 长度都是 4,而且只有这两种情况:a==b 或者 a!=b,其中 a,b 可以是任意小写字母。你写一个算法,如果 equations 中所有算式都不会互相冲突 阅读全文
posted @ 2022-02-22 19:43 鸭子船长 阅读(29) 评论(0) 推荐(0) 编辑
摘要:130. 被围绕的区域(中等) 题目: 给你一个 M×N 的二维矩阵,其中包含字符 X 和 O,让你找到矩阵中四面被 X 围住的 O,并且把它们替换成 X。 注意哦,必须是四面被围的 O 才能被换成 X,也就是说边角上的 O 一定不会被围,进一步,与边角上的 O 相连的 O 也不会被 X 围四面,也 阅读全文
posted @ 2022-02-22 17:51 鸭子船长 阅读(49) 评论(0) 推荐(0) 编辑
摘要:二分图判断讲解 labuladong 什么是二分图: 给你一幅「图」,请你用两种颜色将图中的所有顶点着色,且使得任意一条边的两个端点的颜色都不相同,你能做到吗? 这就是图的「双色问题」,其实这个问题就等同于二分图的判定问题,如果你能够成功地将图染色,那么这幅图就是一幅二分图,反之则不是: 785. 阅读全文
posted @ 2022-02-22 11:10 鸭子船长 阅读(56) 评论(0) 推荐(0) 编辑
摘要:题解:labuladong 题目: 207. 课程表 注意,[1,0]代表前置课程0,才能学课程1 思路: 可以将其转换为有向图是否有环的问题。方向是由前置课程指向后置课程,以此来构建有向图。在递归遍历有向图的过程中,通过visited来进行剪枝,即访问过的结点不再访问。通过onPath来记录走过的 阅读全文
posted @ 2022-02-17 16:01 鸭子船长 阅读(46) 评论(0) 推荐(0) 编辑
摘要:797. 所有可能的路径(中等) 图的递归遍历 题目: 题目输入一幅有向无环图,这个图包含n个节点,标号为0, 1, 2,..., n - 1,请你计算所有从节点0到节点n - 1的路径。 输入的这个graph其实就是「邻接表」表示的一幅图,graph[i]存储这节点i的所有邻居节点。 比如输入gr 阅读全文
posted @ 2022-02-16 16:23 鸭子船长 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题目: 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 * * 完全二叉树 * 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h * 层,则该层包含 1~ 2^h 个节点。 思路: 阅读全文
posted @ 2022-02-15 11:34 鸭子船长 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目: 首先,现在有一种数据结构 NestedInteger,这个结构中存的数据可能是一个 Integer 整数,也可能是一个 NestedInteger 列表。注意,这个列表里面装着的是 NestedInteger,也就是说这个列表中的每一个元素可能是个整数,可能又是个列表,这样无限递归嵌套下去… 阅读全文
posted @ 2022-02-14 17:03 鸭子船长 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目: 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 * * 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / * 反序列化算法执行逻辑,你只需要保证 阅读全文
posted @ 2022-02-14 11:26 鸭子船长 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1373. 二叉搜索子树的最大键值和(困难) 思路:labuladong 题目: 给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。 * * 二叉搜索树的定义如下: * 任意节点的左子树中的键值都 小于 此节点的键值。 * 任意节点的右子树中的键值都 大于 此节点的键 阅读全文
posted @ 2022-02-10 17:28 鸭子船长 阅读(64) 评论(0) 推荐(0) 编辑
摘要:思路:labuladong 基本框架 void BST(TreeNode root, int target) { if (root.val == target) // 找到目标,做点什么 if (root.val < target) BST(root.right, target); if (root 阅读全文
posted @ 2022-02-10 15:47 鸭子船长 阅读(31) 评论(0) 推荐(0) 编辑
摘要:思路:labuladong 二叉搜索树中序遍历为有序数组,利用该特性进行中序遍历,并在遍历时记录rank值,当rank等于k时输出val class Solution { public: int kthSmallest(TreeNode* root, int k) { traverse(root,k 阅读全文
posted @ 2022-02-09 15:06 鸭子船长 阅读(47) 评论(0) 推荐(0) 编辑
摘要:寻找重复的子树 - 力扣(LeetCode)​leetcode-cn.com/problems/find-duplicate-subtrees/description/ 题目描述: 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具 阅读全文
posted @ 2022-02-08 19:47 鸭子船长 阅读(58) 评论(0) 推荐(0) 编辑
摘要:* [543] 二叉树的直径 * * https://leetcode-cn.com/problems/diameter-of-binary-tree/description/ * * algorithms * Easy (55.94%) * Likes: 902 * Dislikes: 0 * T 阅读全文
posted @ 2022-02-08 17:09 鸭子船长 阅读(40) 评论(0) 推荐(0) 编辑
摘要:* 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 * * 如果有两个中间结点,则返回第二个中间结点。 * * * * 示例 1: * * * 输入:[1,2,3,4,5] * 输出:此列表中的结点 3 (序列化形式:[3,4,5]) * 返回的结点值为 3 。 (测评系统对该结点序 阅读全文
posted @ 2022-02-07 17:13 鸭子船长 阅读(27) 评论(0) 推荐(0) 编辑
摘要:本文为按照labuladong算法小结 自行学习的总结。意为记录自己学习练习的顺序,用于日后回顾浏览。目录中附上各章labuladong的原文链接,并会附上自我练习的代码及理解。 1、数据结构 1.1、链表 1.1.1、单链表的六大解题套路 1、合并两个有序链表:Leetcode 21.合并两个有序 阅读全文
posted @ 2022-02-07 15:51 鸭子船长 阅读(99) 评论(0) 推荐(0) 编辑
摘要:思路: labuladong手把手带你刷二叉树(第二期) 按照题目给出的例子,输入的数组为[3,2,1,6,0,5],对于整棵树的根节点来说,其实在做这件事: TreeNode constructMaximumBinaryTree([3,2,1,6,0,5]) { // 找到数组中的最大值 Tree 阅读全文
posted @ 2021-06-07 17:34 鸭子船长 阅读(59) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
点击右上角即可分享
微信分享提示