一、题目:二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。
二叉搜索树的节点定义如下,这里使用C#语言描述:
public class ...
一、题目:字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
二、解题思路
2.1 核心步骤
我们可以把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所...
一、题目:最小的k个数
题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
这道题是典型的TopK问题,其最简单的思路莫过于把输入的n个整数排序,排序之后位于最前面的k个数就是最小的k个数。这种思路的时间复杂度是O(nlogn),但是面试...
Index :
(1)类型语法、内存管理和垃圾回收基础
(2)面向对象的实现和异常的处理
(3)字符串、集合与流
(4)委托、事件、反射与特性
(5)多线程开发基础
(6)ADO.NET与数据库开发基础
(7)WebService的开发与应用基础
一、基础类型和语法
1.1 .NET中所有类型的基类是什么?
在.NET中所有...
一、题目:连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。
这个题目在我去年...
一、题目:丑数
题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。
二、两种解决方案
2.1 一一遍历法:时间效率低下
使用遍历法求第k个丑数,从1开始遍历,如果是丑数则coun...
总线(bus)是一种通信系统,用于携带各种类型的数据,在各组件之间传递数据(可以理解为快递员。按照bus的字面意思理解更好,公共汽车,公共的携带数据的交通工具)。
在大概念上分三种总线:系统总线(前端总线)、内部总线和外部总线。
系统总线:计算机内部主要设备之间的连接。
内部总线:直接或几乎直接和CP...
CPU是计算机的大脑。
程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。
当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取下一个指令、解码、执行,以此类推直到程序退...