剑指 Offer 57. 和为s的两个数字|算法剑指 Offer|哈希表题目描述输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
示例 1:
12输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]
示例 2:
12输入:nums = [ ...
Read more
剑指 Offer 50. 第一个只出现一次的字符|算法剑指 Offer|哈希表题目描述在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例 1:
12输入:s = "abaccdeff"输出:'b'
示例 2:
12输入:s = "" 输出:' ...
Read more
剑指 Offer 68 - II. 二叉树的最近公共祖先|算法剑指 Offer|DFS-二叉搜索树题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大( 一个节点也可以是它自己的祖先 )。”
例如,给定如下二叉树: root ...
Read more
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先|算法剑指 Offer|递归-迭代-二叉搜索树题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大( 一个节点也可以是它自己的祖先 )。”
例如,给定如下二叉搜索树: roo ...
Read more
剑指 Offer 55 - II. 平衡二叉树|算法剑指 Offer|递归-迭代-二叉树-DFS-BFS题目描述输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
示例 1:
给定二叉树 $[3,9,20,null,null,15,7]$
12345 3 / \9 20 / \ 15 7
返回 $true$ ...
Read more
剑指 Offer 55 - I. 二叉树的深度|算法剑指 Offer|递归-迭代-二叉树-DFS-BFS题目描述输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 $[3,9,20,null,null,15,7]$,
123453 / \ 9 20 / \ 15 7
返回它的最大 ...
Read more
剑指 Offer 54. 二叉搜索树的第k大节点|算法剑指 Offer|DFS-二叉搜索树题目描述给定一棵二叉搜索树,请找出其中第 $k$ 大的节点的值。
示例 1:
1234567输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4
示例 2:
123456789输入: root = [5,3,6,2,4,nu ...
Read more
剑指 Offer 37. 序列化二叉树|算法剑指 Offer|二叉树-DFS题目描述请实现两个函数,分别用来序列化和反序列化二叉树。
你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。
提示: 输入输出格式与 LeetCode 目前 ...
Read more
剑指 Offer 34. 二叉树中和为某一值的路径|算法剑指 Offer|二叉树-DFS-前序遍历题目描述给你二叉树的根节点 $root$ 和一个整数目标和 $targetSum$ ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
示例 1:
12输入:root = [5,4,8,11,null,13,4,7,2,null,null, ...
Read more
剑指 Offer 33. 二叉搜索树的后序遍历序列|算法剑指 Offer|DFS-二叉搜索树题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 $true$,否则返回 $false$。假设输入的数组的任意两个数字都互不相同。
参考以下这颗二叉搜索树:
12345 5 / \ 2 6 / \1 3
示例 1:
12输入: [1,6,3 ...
Read more