JinFei's Blog

Thinking will not overcome fear but action will.

[LeetCode]700. 二叉搜索树中的搜索

二叉搜索树中的搜索

题目描述 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 Example1: 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 上述示例中,如果要...

[LeetCode]183. 从不订购的客户

从不订购的客户

题目描述 某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。 Customers 表: +—-+——-+ | Id | Name | +—-+——-+ | 1 | Joe | | 2 | Henry | | 3 | Sam | | 4 | Max | +—-+——-+ Orders 表: ...

[LeetCode]182. 查找重复的电子邮箱

查找重复的电子邮箱

题目描述 编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。 示例: +—-+———+ | Id | Email | +—-+———+ | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | +—-+———+ 根据以上输入,你的查询应返回以下结果: +———+ | Email | +———+ | a@b.c...

[LeetCode]67. 二进制求和

二进制求和

题目描述 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 Example1: 输入: a = “11”, b = “1” 输出: “100” Example2: 输入: a = “1010”, b = “1011” 输出: “10101” Note: 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。 ...

[LeetCode]859. 亲密字符串

亲密字符串

题目描述 给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。 例如,在 “abcd” 中交换下标 0 和下标 2 的元素可以生成 “cbad” 。 E...

[LeetCode]594. 最长和谐子序列

长和谐子序列

题目描述 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。 Example1: 输入:nums = [1,3,2,2,5,2,3,7] 输出:5 解释:最长...

[LeetCode]28. 实现 strStr()

实现 strStr()

题目描述 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。   说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返...

[LeetCode]559. N 叉树的最大深度

最大深度

题目描述 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。 Example1: 输入:root = [1,null,3,2,4,null,5,6] 输出:3 Example2: 输入:root = [1,null,2,3,4,5,null,...

[LeetCode]397. 整数替换

整数替换

题目描述 给定一个正整数 n ,你可以做如下操作: 如果 n 是偶数,则用 n / 2替换 n 。 如果 n 是奇数,则可以用 n + 1或n - 1替换 n 。 n 变为 1 所需的最小替换次数是多少? Example1: 输入:n = 8 输出:3 解释:8 -> 4 -> 2 -> 1 Example2: 输入:n = 7 输出:4 解释:...

[LeetCode]27. 移除元素

移除元素

题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在...