终于来北京了。参加了第一个面试,地点微软大厦。
能记下的写出来吧。
1.值类型与引用类型的区别以及写出下列输出:
int i = 200; object o = i; int j = (int)o; Console.WriteLine("o:{0},j:{1}",o,j);
2.写出输出:
public class A { public static int X = B.Y; public A() { ++X; } } public class B { public static int Y = A.X; static B() { ++Y; } } Console.WriteLine(A.X.Tostring()); Console.WriteLine(B.Y.Tostring());
3.查找一个数组中成员重复的次数,将该成员与出现次数对应输出;
4.快速排序
//算法大意 /* 将数组第一个数作为参考变量,从前向后,将大于该数的值移动到该数的右边,从后向前小于该数的值移动到该数的左边,直到两数相遇,不可分割为止。 然后递归,将0到刚才相遇的数的位置为一个子数组,相遇位置到结尾为第二个子数组,如此继续直到子数组长度为1. */ public int QuickSort(int [] arra,int low ,int high) { //参考值 int key=arra[0]; //数组还可以切割 while(low<hgh) { //满足条件,数组往前走,循环 while(key<array[high]&&low<high) --high //不满足时,说明该数比key小,即交换位置 array[low]=array[high]; //满足条件,数组往后走,循环 while(key>array[low]&&low<high) ++low; //否则将 大的数移动到右边 array[high]=array[low]; } //循环结束时,high与low相等,数组不在分割成小数组,该成员的值即为key array[low]=key; return high; } public void Sort(int [] arr,int l,int h) { if(l>h) return; int index=QuickSort(arr,int l,int h) //左边递归 Sort(arr,0,index-1); //右边递归 Sort(arr,index+1,arr.Length-1); }
5.查找最长公共子字符串
(当时没做出来,回去研究)