共 19 页: 首页 上一页 7 8 9 10 11 12 13 14 15 下一页 末页
摘要:在本篇中,覆盖了.NET面试笔试中最基础的语法和类型题目。纵观对.NET基础知识的考察中,最基础的知识点其难度也相对最小。对于这类基础知识的回答,我们需要做到尽可能的正确,当然如果对于基本概念非常清晰透彻,也能显示我们深厚的技术功底。 阅读全文
posted @ 2015-09-12 19:46 EdisonZhou 阅读 (9917) 评论 (12) 编辑
摘要:题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。这道题是典型的TopK问题,其最简单的思路莫过于把输入的n个整数排序,排序之后位于最前面的k个数就是最小的k个数。这种思路的时间复杂度是O(nlogn),但是面试官会要求时间复杂度保持在O(n)。 阅读全文
posted @ 2015-09-11 00:59 EdisonZhou 阅读 (3178) 评论 (0) 编辑
摘要:题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。我们可以把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。 阅读全文
posted @ 2015-09-09 23:19 EdisonZhou 阅读 (2946) 评论 (0) 编辑
摘要:题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。我们知道:在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种排序的数据结构,因此在理论上有可能实现二叉搜索树和排序的双向链表的转换。 阅读全文
posted @ 2015-09-09 00:57 EdisonZhou 阅读 (4812) 评论 (1) 编辑
摘要:当一个发布的.NET应用程序出现app crash,无法通过日志分析异常原因时,就需要通过分析DMP文件了,传统方式是通过WinDbg来分析DMP文件,但是WinDbg用起来不是很方便,其实VS就是一个很好的DMP文件分析工具,这里我们通过一个简单的控制台项目来分析一个DMP文件。 阅读全文
posted @ 2015-09-08 22:39 EdisonZhou 阅读 (6065) 评论 (0) 编辑
摘要:题目:请实现函数ComplexListNode Clone(ComplexListNode head),复制一个复杂链表。在复杂链表中,每个结点除了有一个Next指针指向下一个结点外,还有一个Sibling指向链表中的任意结点或者NULL。下图是一个含有5个结点的复杂链表。图中实线箭头表示m_pNext指针,虚线箭头表示m_pSibling指针。为简单起见,指向NULL的指针没有画出。 阅读全文
posted @ 2015-09-07 23:22 EdisonZhou 阅读 (3378) 评论 (0) 编辑
摘要:题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。例如输入下图中二叉树和整数22,则打印出两条路径,第一条路径包含结点10、12,第二条路径包含结点10、5和7。 阅读全文
posted @ 2015-09-06 23:40 EdisonZhou 阅读 (1096) 评论 (0) 编辑
摘要:dotNet简而言之,就是孝顺的小王想开发一个万能程序,可以一键式打开常见的计算机资料,例如:文档、图片和影音文件等,只需要安装一个程序就可以免去其他应用文件的管理(你让其他耗费了巨资打造的软件情何以堪...),于是就有了这个万能加载器(FileLoader)。初步分析之后,小王总结了这个万能加载器的功能点如下:能够打开常见文档类资料,能够打开常见图片类资料,能够打开常见音频类资料等。 阅读全文
posted @ 2015-09-05 03:12 EdisonZhou 阅读 (1789) 评论 (7) 编辑
摘要:题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。例如在下面的一颗二叉搜索树中,输入数组{5,7,6,9,11,10,8},则返回true,因为这个整数序列是下图二叉搜索树的后序遍历结果。如果输入的数组是{7,4,6,5},由于没有哪棵二叉搜索树的后序遍历的结果是这个序列,因此返回false。 阅读全文
posted @ 2015-09-04 00:00 EdisonZhou 阅读 (1135) 评论 (0) 编辑
摘要:题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图中的二叉树,则依次打印出8、6、10、5、7、9、11。这道题实质是考查树的层次遍历(广度优先遍历)算法。不管是广度优先遍历一个有向图还是一棵树,都要用到队列。 阅读全文
posted @ 2015-09-03 10:23 EdisonZhou 阅读 (1585) 评论 (0) 编辑
摘要:题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 阅读全文
posted @ 2015-09-03 00:04 EdisonZhou 阅读 (3758) 评论 (0) 编辑
摘要:题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。这里我们要实现的就是min、push以及pop三个方法。 阅读全文
posted @ 2015-09-02 00:51 EdisonZhou 阅读 (1629) 评论 (0) 编辑
摘要:题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如下图所示,左图是原二叉树,而右图则是该二叉树的镜像。我们可以先序遍历原二叉树的每个节点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。 阅读全文
posted @ 2015-08-31 23:36 EdisonZhou 阅读 (2664) 评论 (0) 编辑
摘要:题目:输入两棵二叉树A和B,判断B是不是A的子结构。例如下图中的两棵二叉树,由于A中有一部分子树的结构和B是一样的,因此B是A的子结构。要查找树A中是否存在和树B结构一样的子树,我们可以分成两步:Step1.在树A中找到和B的根结点的值一样的结点R;Step2.判断树A中以R为根结点的子树是不是包含和树B一样的结构。很明显,这是一个递归的过程。 阅读全文
posted @ 2015-08-30 23:05 EdisonZhou 阅读 (3570) 评论 (0) 编辑
摘要:这也是一道出镜率极高的面试题,我相信很多童鞋都会很眼熟,就像于千万人之中遇见不期而遇的人,没有别的话可说,唯有轻轻地问一声:“哦,原来你也在这里? ”题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入下图中的链表1和链表2,则合并之后的升序链表如链表3所示。 阅读全文
posted @ 2015-08-30 20:09 EdisonZhou 阅读 (2728) 评论 (0) 编辑
摘要:题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。由于题目并没有要求必须原地反转,因此可以借助外部空间实现。这里可以将单链表储存为数组,然后按照数组的索引逆序进行反转。但是,此方式比较浪费空间,而且需要两次遍历,效率不占优势。 阅读全文
posted @ 2015-08-29 20:32 EdisonZhou 阅读 (12649) 评论 (0) 编辑
摘要:题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。 阅读全文
posted @ 2015-08-29 15:04 EdisonZhou 阅读 (10205) 评论 (0) 编辑
摘要:题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。例如有以下一个整数数组:12345,经过调整后应该为:15342、13542、13524等等。 阅读全文
posted @ 2015-08-29 13:03 EdisonZhou 阅读 (3585) 评论 (1) 编辑
摘要:题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。在单向链表中删除一个结点,最常规的做法无疑是从链表的头结点开始,顺序遍历查找要删除的结点,并在链表中删除该结点。这种思路由于需要顺序查找,时间复杂度自然就是O(n)。是不是一定需要得到被删除的结点的前一个结点呢?答案是否定的。 阅读全文
posted @ 2015-08-28 00:49 EdisonZhou 阅读 (1555) 评论 (2) 编辑
摘要:题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。最容易想到的办法是先求出最大的n位数,然后用一个循环从1开始逐个打印。初看之下好像没有问题,但是其并没有考虑大数问题,有可能即使用整型(int)或长整型(long)都会溢出。 阅读全文
posted @ 2015-08-27 00:46 EdisonZhou 阅读 (1748) 评论 (0) 编辑
共 19 页: 首页 上一页 7 8 9 10 11 12 13 14 15 下一页 末页