递归
DEUSJIN
这个作者很懒,什么都没留下…
展开
-
Count of Range Sum(区间和的个数)(困难)分治、归并
题目:给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。说明:最直观的算法复杂度是 O(n2) ,请在此基础上优化你的算法。示例:输入: nums = [-2,5,-1], lower = -2, upper ...原创 2020-02-28 12:13:30 · 350 阅读 · 0 评论 -
Count of Smaller Numbers After Self(计算右侧小于当前元素的个数)(困难)归并,分治
题目:给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。来源:力扣(LeetCode)利用归并排序的思想。每当右侧元素放入临时数组时,tmp。而当左侧元素放入临时数组时,在相应的counter位置处加上tmp。为了保证元素的顺序,我们用一个索引数组来进行归...原创 2020-02-25 14:07:21 · 139 阅读 · 0 评论 -
面试题36. 二叉搜索树与双向链表(分治)(递归)
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head...原创 2020-02-14 12:58:36 · 532 阅读 · 0 评论 -
为运算表达式设计优先级
题目:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。输入: “23-45”输出: [-34, -14, -10, -10, 10]解释:(2*(3-(45))) = -34((23)-(45)) = -14((2(3-4))5) = -10(2((3-4)5)) = -...原创 2020-02-12 20:48:40 · 214 阅读 · 0 评论 -
数组中的第K个最大元素
题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。法一:排序后输出。法二:优先队列(堆)。法三:利用快速排序的方法。在这里仅介绍法三,法一法二调用库函数即可。思路:首先,找第k个最大的元素,即是找第n-k+1个最小的元素。步骤一:我们利用快排的思想,每一次对一个元素进行归位,判断该元素最终位置p与n-...原创 2020-02-12 10:34:40 · 230 阅读 · 0 评论 -
特殊的二进制(困难)(递归)
题目:特殊的二进制序列是具有以下两个性质的二进制序列:0 的数量与 1 的数量相等。二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。)在任意次数的操作之后,交换...原创 2020-02-11 09:14:52 · 330 阅读 · 0 评论 -
原子的数目 递归(困难)
题目:给定一个化学式formula(作为字符串),返回每种原子的数量。原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2 这个表达是不可行的。两个化学式连在一起是新的化学式。例如 H2O2He3Mg4 也是化学式。一个括号中的化学式和数...原创 2020-02-09 09:55:53 · 225 阅读 · 0 评论 -
所有可能的满二叉树(感悟递归)
满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。答案中每个树的每个结点都必须有 node.val=0。你可以按任何顺序返回树的最终列表。示例:输入:7输出:[[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0,0,0],[0...原创 2020-02-06 19:07:56 · 212 阅读 · 0 评论 -
第K个语法符号(递归)
题目:在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)例子:输入: N = 1, K = 1输出: 0输入: N = 2, K = 1输出: 0输入: N = 2, K = 2输出: 1输入: N = 4, K = 5输出: 1解释:第一行: 0第二行: 01第三行...原创 2020-02-05 12:50:16 · 780 阅读 · 0 评论 -
划分为K个相同的子集(递归)
题目:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。示例 1:输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。注:题目搬运自LeetCode初始判断:由题目我们可知数组 nums 的总和为 s...原创 2020-02-05 09:29:10 · 490 阅读 · 0 评论