发表时间:2008-04-23
likeblood 写道 GreenForest 写道 第2题
1、int birthday[12][31]。 2、将数组中所有元素初始化为0。 3、循环遍历所有人,如果当前人n月m日生日,则birthday[n-1][m-1]++。 4、找出数组中最大的值。 这才是正解!看看编程珠玑的前言吧 当然最好再加个int month int day 随时记录最多的日子,这样最后就不用再遍历了 不知道是二维数组快点 .还是Map 快点? |
|
发表时间:2008-04-23
lsk 写道 likeblood 写道 GreenForest 写道 第2题
1、int birthday[12][31]。 2、将数组中所有元素初始化为0。 3、循环遍历所有人,如果当前人n月m日生日,则birthday[n-1][m-1]++。 4、找出数组中最大的值。 这才是正解!看看编程珠玑的前言吧 当然最好再加个int month int day 随时记录最多的日子,这样最后就不用再遍历了 不知道是二维数组快点 .还是Map 快点? 主要是我不太知道申明一个12*31的二维数组和申明一个365的一维数组在效率上有什么优势,大约是在进行++操作的时候遍历速度上吧? |
|
发表时间:2008-04-23
第二题: 维护一个365(366)长度的数组
第三题: A=0(25个)1 二进制 |
|
发表时间:2008-04-23
第二题:
考虑选Hashmap还是数组时,要把字符串转化为数字的效率考虑在内。 |
|
发表时间:2008-04-23
etongg 写道 第二题:
考虑选Hashmap还是数组时,要把字符串转化为数字的效率考虑在内。 用个范型.不用转换. |
|
发表时间:2008-04-23
1,的解法我没什么想法
2,直接导入数据库,执行sql更快更有效率 3,使用split分词,然后按每个词的字数分组,然后对组内进行匹配 |
|
发表时间:2008-04-23
你确定他们是招JAVA的?
|
|
发表时间:2008-04-23
这年头只考数据结构和算法的公司只会招到呆子。永远搞不到有创造性的人才。
|
|
发表时间:2008-04-23
1.电话的,可以用进制搞定。比如输入2345,那么可能的数值是0001,也就是在2键上取第0个字母,在3键上取0,4键上取第0个字母,5键上取第1字母,这是一个组合。再将数加1,变成0002,0003,(进位)0010,0011....但要注意,这个加1进位可能是3进制,也可能是4进制。
2.生日那题其实是要从生日最小的单位找比较快:取日的个位,找到个位相同个数最多的那个,也有可能多个,不过数量绝对减少,再在这些结果中找日的十位,以此类推,直到年的十位,最多的就是了。 3.算字母的乘的积,如a*b*c与a*c*b与c*a*b等是一样的,当然要转成统一的大小写。 ASCII码值上,从95(a)开始,可以保证在个数一样时,a*b*c*d!=i*j*k*l |
|
发表时间:2008-04-23
GreenForest 写道 第2题
1、int birthday[12][31]。 2、将数组中所有元素初始化为0。 3、循环遍历所有人,如果当前人n月m日生日,则birthday[n-1][m-1]++。 4、找出数组中最大的值。 这个应该是最省空间和最快的,这个比定义arr[1231]大小的数组要机智的多;其次应该是用HashMap来做 |