?net软件工程师面试题
基础题:
[]xArrayListsList的区别。
数组:
优点:
O数组在存中是连续存储的,索引速度非常快;
O赋值和修改元素也很简单;
不足:
O两个数据之间插入数据比较麻是一个常量。
5:不可以换成readonly,readonly只能用来修饰类的field,不能修饰局部变量,也不能修饰
property等其他类成员。
6?错误:如果在ostr前加上const或者const改为readonly即可;
总结:】.const、readonly和stoticreodonly定义的常量,指定初始值后(包括在构造函数指
定的初始值)将不可更改,可读不可写;
const定义时必须指定初始值,而readonly定义时可以不进行初始化(MS建
议
在定义时初始值),同时也可以在构造函数指定初始值,
并以构造函数指定的值为准;
const和staticreadonly定义的常量是静态的,只能由类直接访问;而readonly定
义的常量是非静态的,只能由实例对象访问;
staticreadonly常量,如果在构造函数指定初始值,则必须是静态无参构造函数;
const是编译时常g,readonly是运行时常量;cosnt较高效,reodonly较灵
活。在应用上以staticreadonly代替const,以平衡const在灵活性上的不足,同时克服编译器
优化cosnt性能,所带来的程序集引用不一致问题;
算法题:(以下三题不用作答,想好思路面试谈即可)
,元素取值可能是0-65535中的任意一个数,相同数值不会重复出现。0是例
外,可以反复出现。
请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。注意:
-5个数值允是乱序的。比如:87506
-0可以通配任意数值。比如:87506中的0可以通配成9或者4
-0可以多次出现。
-复杂度如果是O(n2)则不得分。
解题思路:
】?取5个数中非0的最大数和最小数,之差不大于4则连续,否则不连续。
2?要增加两个特例:1)全0算连续,2)只有一个非0算连续
代码实例
javo'viewplaincopyprnfc_
<spanstyle=nfont-size:Upx/Xspanstyle=Mfont-family:MicrosoftYaHei;font-size:12px;color:#333333;M><spanstyle-'font-size:12px;Hinclude<iostream>
#include<>
usingnamespacestd;
5. {
8.
9.
10.
intcheck(intarry[5])
=0,min=65535;
intzerocount=0;for(inti=0;i<5;i++){
if(arry[i]==O)zerocount++;
else
if(arry[i]>max)max=arry[i];if(arry[i]<min)
min=arry[i];
}
}
iffzerocount>=4)
return1;
else
{
if(max-min<=4)
return1;
else
return0;
}
}
intmain()
{
intorry⑸;
cout?*'一个整数数列,元素取值可能是0-65535中的任息一个数,相同数值不会重篦出现;0是例外,可以反出现*?endl;
for(inti=0;i<5;i++)
cin?arry[i];
intp=check(arry);
if(p)
cout?M连续tvendl;
else
cout?M不连续,,?endl;
system(Mpausen);
}</spanx/spanx/span>
输入:12305
输出:连续
设计一个在一百万个数字中求十个最大的数算法
fjavc;viewplaincopy
prints_
<spanstyle="font-size:14px;"><spanstyle-'fonfJamily:MicrosoftYaHei;font-size:12px;color:#333333;n><spanstyle-'font-sizeJ2px;">intdata[M];
inttop[N+1];
voidtop_N()
6-^
[0]=std::numericjimits<int>::max();//Seta''guard'1ontheboundorytoreducecomp
高级工程师面试题 来自淘豆网m.daumloan.com转载请标明出处.