【每日算法】LeetCode 96 —— 不同的二叉搜索树(一百八十八)
题目内容给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例示例 1: 输入:n = 3输出:5 示例 2: 输入:n = 1输出:1 提示1 <= n <= 19 题解本题因为仅求方案数,且可以通过 ...
Read more
【每日算法】LeetCode 95 —— 不同的二叉搜索树II(一百八十七)
题目内容给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例示例 1: 输入:n = 3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2 ...
Read more
【每日算法】LeetCode 94 —— 二叉树的中序遍历(一百八十六)
题目内容给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例示例 1: 输入:root = [1,null,2,3]输出:[1,3,2] 示例 2: 输入:root = []输出:[] 示例 3: 输入:root = [1]输出:[1] 示例 4: 输入:root = [1,2]输出 ...
Read more
【每日算法】LeetCode 93 —— 复原IP地址(一百八十五)
题目内容给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:”0.1.2.201” 和 “1 ...
Read more
【每日算法】LeetCode 92 —— 翻转链表(一百八十四)
题目内容给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例示例 1: 输入:head = [1,2,3,4,5], left = 2, right = ...
Read more
【每日算法】LeetCode 91 —— 解码方法(一百八十三)
题目内容一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> 1‘B’ -> 2…‘Z’ -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,”11106” 可以映射为: “AAJF” ,将消息分组为 (1 1 ...
Read more
【每日算法】LeetCode 90 —— 子集II(一百八十二)
题目内容给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例示例 1: 输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2 ...
Read more
【每日算法】LeetCode 89 —— 格雷编码(一百八十一)
题目内容格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。 格雷编码序列必须以 0 开头。 示例示例 1: 输入: 2输出: [0,1,3,2]解释:00 - 001 - ...
Read more
【每日算法】LeetCode 88 —— 合并两个有序数组(一百八十)
题目内容给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 ...
Read more
【每日算法】LeetCode 87 —— 扰乱字符串(一百七十九)
题目内容使用下面描述的算法可以扰乱字符串 s 得到字符串 t :1、如果字符串的长度为 1 ,算法停止2、如果字符串的长度 > 1 ,执行下述步骤:(1)在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + ...
Read more