上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 分析: 这题讲究效率,如果出栈一个一个的找,时间效率低下。 所以我们用空间换时间,定义一个辅助栈,存储当前的最小值。 入栈时,如果值是当前栈的最小值,则把值一并入辅助栈,不然只需要入主栈即可。 出栈时,如果当前栈的最 阅读全文
posted @ 2017-10-29 11:09 叶建成 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如,如果输入如下矩阵: 1 2 3 45 6 7 89 10 11 1213 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 分析: 小心越界,小心死循环。 阅读全文
posted @ 2017-10-29 10:47 叶建成 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 分析: 交换左右子树根结点的指针,再递归交换子树的左右子树根结点的指针。 代码: 阅读全文
posted @ 2017-10-29 10:26 叶建成 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 分析: 先匹配到A的某个结点和B的根相同,然后往下继续匹配。不匹配则递归匹配左右子树。 代码: 阅读全文
posted @ 2017-10-29 10:22 叶建成 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 分析: 苦力活,使用两个指针分别指向未被合并的两个链表的首部,比较两个首部数值的大小,合并数值小的结点,并且指针后移指向新的首部。 最后到了某一个链表的尾部之后,将尾部连接另一链表未被合并部分的 阅读全文
posted @ 2017-10-27 15:12 叶建成 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 分析: 定义两个指针p、q,只需让p先走k步,然后q再走,那么p到终点了,q指向的结点就是倒数第k个结点。 代码: 阅读全文
posted @ 2017-10-27 15:02 叶建成 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 分析: 不解释,用空间换时间。 代码: 阅读全文
posted @ 2017-10-27 14:56 叶建成 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 分析: 快速幂,简单解释下, 当e的二进制为1001011, b^e=b^(1001011)2=b^(1)2*b^(10)2*b^(1000)2*b^(1000000)2。 代 阅读全文
posted @ 2017-10-27 14:50 叶建成 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 分析: 加入一个数的二进制位是XXX...XXX1000...000,那么这个数减去1,就会变成XXX...XXX0111...111,将这两个数相与(即&), 那么就可以得到XXX...XXX0000...000,将原来 阅读全文
posted @ 2017-10-27 14:29 叶建成 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析: 2*n的矩阵可以由2*(n-1)的矩阵竖着放一个小矩阵得到,或者由2*(n-2)的矩阵横着放两块小矩阵得到。 建模之后便是斐波那契数列的求解。 代码: 阅读全文
posted @ 2017-10-27 14:19 叶建成 阅读(133) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页