My Github
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页
摘要: 多线程开发技术是每个技术框架下都需要面对的问题,在多CPU、多核的硬件架构逐渐普及的今天,多线程开发编程也渐渐地变得更加重要。本篇将涉及关于.NET中多线程开发中的重要基础知识点,并以问答的形式集中展现。由于各个操作系统的不同涉及,进程、线程等基本概念在不同的操作系统中会有所不同,本篇如没有特指都只代表Microsoft的Windows系列操作系统。 阅读全文
posted @ 2015-09-30 23:54 EdisonZhou 阅读(39445) 评论(39) 推荐(237) 编辑
摘要: 本篇涵盖了.NET框架中最为重要的几个高级特性:委托、事件、反射以及特性。对这些高级特性的理解和运用,已经成为了.NET程序员从入门进阶到中级的判断标准。也正是如此,此类的问题在各种公司的.NET技术面试中被大量采用,我们在理解这些内容时应该做到“知其然也知其所以然”,充分理解这些高级特性在.NET框架下是如何实现的,它如何提高了程序的灵活性和可扩展性。 阅读全文
posted @ 2015-09-25 23:44 EdisonZhou 阅读(15703) 评论(8) 推荐(57) 编辑
摘要: 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。这看起来是道很简单的题目,实现其基本功能,大部分人都能用10行之内的代码解决。可是,当我们要把很多特殊情况即测试用例都考虑进去,却不是一件容易的事情。 阅读全文
posted @ 2015-09-21 22:25 EdisonZhou 阅读(7502) 评论(4) 推荐(4) 编辑
摘要: 本题是对于字符串翻转基本算法的两个应用。题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。题目二:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefgab"。 阅读全文
posted @ 2015-09-21 00:41 EdisonZhou 阅读(4700) 评论(0) 推荐(1) 编辑
摘要: 此篇包含两道题目,都是针对二叉树遍历算法的应用。题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。题目二:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 阅读全文
posted @ 2015-09-20 14:13 EdisonZhou 阅读(20450) 评论(0) 推荐(3) 编辑
摘要: 题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。既然输入的数组是排序的,那么我们很自然地就能想到用二分查找算法。在题目给出的例子中,我们可以先用二分查找算法找到一个3。由于3可能出现多次,因此我们找到的3的左右两边可能都有3,于是我们在找到的3的左右两边顺序扫描,分别找出第一个3和最后一个3。 阅读全文
posted @ 2015-09-20 11:04 EdisonZhou 阅读(7286) 评论(0) 推荐(0) 编辑
摘要: 题目:输入两个链表,找出它们的第一个公共结点。碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点的时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上的结点一样,说明两个链表在这个结点上重合,于是就找到了它们的公共结点。如果第一个链表的长度为m,第二个链表的长度为n,显然该方法的时间复杂度是O(mn)。 阅读全文
posted @ 2015-09-20 00:23 EdisonZhou 阅读(8226) 评论(1) 推荐(2) 编辑
摘要: .NET 全栈开发工程师学习路径 最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位园友分享。 阅读全文
posted @ 2015-09-18 23:56 EdisonZhou 阅读(44486) 评论(56) 推荐(211) 编辑
摘要: 字符串、集合和流在实际开发中是经常被用到,相关代码的编写也将会直接影响到系统的正确性和效率。因此,在本篇中覆盖了.NET面试笔试中关于字符串、集合和流的一些面试题,通过分析和理解这些题目和知识点,我们可以加深对字符串、集合和流的认知,从而达到梳理基础的目的,最终帮助我们在实际开发中提高效率和性能。 阅读全文
posted @ 2015-09-18 00:04 EdisonZhou 阅读(6150) 评论(3) 推荐(29) 编辑
摘要: 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。要求时间复杂度为O(n)。最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路的时间复杂度是O(n2),但是不满足要求。 阅读全文
posted @ 2015-09-14 23:07 EdisonZhou 阅读(11173) 评论(38) 推荐(9) 编辑
摘要: 在本篇中,覆盖了.NET面试笔试中部分有关面向对象的实现和异常处理部分的题目,C#是一种“纯净”的面向对象语言,虽然.NET本身允许一些面向过程的语言组件的存在,但其提倡的仍然是面向对象的编程思想。此外,异常不是Bug,它存在于所有的程序之中,因此编写代码时,如何处理异常程序也是时刻考虑的一个问题。 阅读全文
posted @ 2015-09-14 00:11 EdisonZhou 阅读(5284) 评论(6) 推荐(21) 编辑
摘要: 题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。 阅读全文
posted @ 2015-09-13 16:57 EdisonZhou 阅读(11153) 评论(0) 推荐(2) 编辑
摘要: 题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。 阅读全文
posted @ 2015-09-13 12:02 EdisonZhou 阅读(4260) 评论(0) 推荐(1) 编辑
摘要: 在本篇中,覆盖了.NET面试笔试中最基础的语法和类型题目。纵观对.NET基础知识的考察中,最基础的知识点其难度也相对最小。对于这类基础知识的回答,我们需要做到尽可能的正确,当然如果对于基本概念非常清晰透彻,也能显示我们深厚的技术功底。 阅读全文
posted @ 2015-09-12 19:46 EdisonZhou 阅读(15069) 评论(13) 推荐(82) 编辑
摘要: 题目:输入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 阅读(6879) 评论(0) 推荐(2) 编辑
摘要: 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。我们可以把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。 阅读全文
posted @ 2015-09-09 23:19 EdisonZhou 阅读(3502) 评论(0) 推荐(1) 编辑
摘要: 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。我们知道:在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种排序的数据结构,因此在理论上有可能实现二叉搜索树和排序的双向链表的转换。 阅读全文
posted @ 2015-09-09 00:57 EdisonZhou 阅读(5891) 评论(1) 推荐(3) 编辑
摘要: 当一个发布的.NET应用程序出现app crash,无法通过日志分析异常原因时,就需要通过分析DMP文件了,传统方式是通过WinDbg来分析DMP文件,但是WinDbg用起来不是很方便,其实VS就是一个很好的DMP文件分析工具,这里我们通过一个简单的控制台项目来分析一个DMP文件。 阅读全文
posted @ 2015-09-08 22:39 EdisonZhou 阅读(9457) 评论(0) 推荐(4) 编辑
摘要: 题目:请实现函数ComplexListNode Clone(ComplexListNode head),复制一个复杂链表。在复杂链表中,每个结点除了有一个Next指针指向下一个结点外,还有一个Sibling指向链表中的任意结点或者NULL。下图是一个含有5个结点的复杂链表。图中实线箭头表示m_pNext指针,虚线箭头表示m_pSibling指针。为简单起见,指向NULL的指针没有画出。 阅读全文
posted @ 2015-09-07 23:22 EdisonZhou 阅读(5488) 评论(0) 推荐(1) 编辑
摘要: 题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。例如输入下图中二叉树和整数22,则打印出两条路径,第一条路径包含结点10、12,第二条路径包含结点10、5和7。 阅读全文
posted @ 2015-09-06 23:40 EdisonZhou 阅读(1810) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页