leetCode
digitaluser
这个作者很懒,什么都没留下…
展开
-
经典算法恢复二叉搜索树
1、题目描述二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:示例 2:进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?2、我的代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...原创 2020-05-07 13:49:08 · 284 阅读 · 0 评论 -
经典算法序列化和反序列化二叉搜索树
1、题目描述序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化二叉搜索树。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。编码的字符串应尽可能紧凑。注意:不要使用类成员/全局/静态...原创 2020-05-05 21:25:59 · 217 阅读 · 0 评论 -
经典算法删除二叉搜索树中的节点
1、题目描述给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:2、我的代码/** * Definition for a ...原创 2020-05-04 20:22:45 · 459 阅读 · 0 评论 -
经典算法二叉搜索树中第k小的元素
1、题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest 函数?2、我的代码/** * Definition for a binary tree ...原创 2020-05-02 18:53:30 · 546 阅读 · 0 评论 -
经典算法不同的二叉搜索树
1、题目描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2/ / ...原创 2020-05-02 18:07:22 · 468 阅读 · 0 评论 -
经典算法将有序数组转成二叉搜索树
1、题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \-3 9/ /-10 52、我的代码...原创 2020-04-28 17:24:59 · 301 阅读 · 0 评论 -
经典算法验证二叉搜索树
1、题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释: 输入为: [5,1,4,null...原创 2020-04-28 15:44:06 · 209 阅读 · 0 评论 -
经典算法电话号码的字母组合
1、题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。来源:力扣(LeetCod...原创 2020-04-22 17:48:19 · 844 阅读 · 0 评论 -
经典算法正则表达式匹配
1、题目描述2、我的代码 class Solution{ public: bool isMatch(string s, string p) { int len_src = s.length(); int len_gui = p.length(); bool first_match = false; if(len_gui == 0) ...原创 2020-04-21 23:06:41 · 241 阅读 · 0 评论 -
经典算法前序遍历二叉树
1、题目描述给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?2、我的代码/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;Tree...原创 2020-04-19 17:23:41 · 348 阅读 · 0 评论 -
经典算法中序遍历二叉树
1、题目描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?2、我的代码/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeN...原创 2020-04-19 16:20:53 · 194 阅读 · 0 评论 -
经典算法二叉搜索树迭代器
1、题目描述实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext(); // ...原创 2020-04-18 22:59:19 · 192 阅读 · 0 评论 -
经典算法无重复字符的最长子串
无重复字符的最长子串1、题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复...原创 2020-04-17 20:13:13 · 146 阅读 · 0 评论