阅读 47562 次
发表时间: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来做
Global site tag (gtag.js) - Google Analytics