题干 输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。 解题思路 举例分...
题干 输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。 解题思路 举例分...
题干 输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个正数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 解题思路 思路一 从头到尾逐个累...
题干 输入n个整数,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数,则最小的4个数字是1、2、3、4。 解题思路 思路一 使用 Partition 函...
题干 数组中有一个数字出现的册书超过数组长度的一半,请找出这个数字。例如,输入一个长度为9的数组「1,2,3,2,2,2,5,4,2」。由于数字2在数组中出现了5次,超过数组...
题干 输入一个字符串,打印出该字符串中字符的所有组合。例如输入字符串abc,则它们的组合有a、b、c、ab、ac、bc、abc。 解题思路 如果输入n个字符,则求这n个字符的...
题干 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 解题...
题干 请实现两个函数,分别用来序列化和反序列化二叉树。 解题思路 使用前序遍历,当碰到空指针时,使用特殊符号代替,节点之间使用符号分割。 代码实现
题干 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的方向。比如,输入如图的二叉搜索树,则输出转换之后的排序双向链...
题干 请实现函数 ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个节点除了有一个 m_pNe...
题干 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶子节点所经过的节点形成一条路径。二叉树节点的定义如下 解题思路 使用...
题干 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 解题思路 二叉搜索树...
题干 不分行从上到下打印二叉树 从上到下打印二叉树到每个节点,同一层到节点按照从左到右到顺序打印。例如,输入下图到二叉树,则依次打印出8,6,10,5,7,9,11.二叉树节...
题干 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列「1,2,3,4,5」是某栈的压栈序列,序列「...
题干 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。 解题思路 首先本题有时间复杂度...
题干 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如,如果输入如下矩阵: 则依次打印出数字 1 2 3 4 8 12 16 15 14 13 9 5 6 ...
题干 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它就是对称的。例如在下图的三棵二叉树中,第一棵二叉树是对称的,而另外两棵不是。 第一棵...
题干 请完成一个函数,输入一棵二叉树,该函数输出它的镜像。二叉树节点的定义如下: 解题思路 输入二叉树 输出二叉树 从图中可以分析出,输出的镜像二叉树和原二叉树的各个子树的根...
题干 输入两棵二叉树A和B,判断B是不是A的子结构。二叉树节点定义如下: 二叉树A 二叉树B 解题思路 获取B的根节点,遍历A中是否存在等于B的根节点的节点,不存在,则返回f...
题干 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然使递增排序的。例如输入下图中的链表1和链表2,则合并之后的升序链表如链表3所示。链表节点定义如下: 链表1 ...
题干 定义一个函数,输入一个链表的图节点,反转该链表并输出反转后链表的头节点。链表节点定义如下: 解题思路 为了防止节点反转的过程中出现链表断裂的情况出现,需要使用一个指针记...