金蝶笔试题

jwl_xyc 2010-04-26 04:05:00
昨天去金蝶做笔试,下面是其中的两个,望大人们能给个不错的答案,大家都学习学习。
1 优化下面这段代码,并说明原因
for(int i =0; i < 1000; i++)
for (int j=0; j < 100; j++)
for (int k = 0; k < 10; k++)
fun(i, j, k);
2:怎样判断一个单向链表是一个闭环(链表的最后一个节点指向链表其中的一个节点),考虑最优方案。
...全文
1510 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowDoIT 2010-12-13
  • 打赏
  • 举报
回复
补充一下~

http://topic.csdn.net/u/20090713/19/780e5a72-caa2-4392-ba60-f93dc1a98c02.html

NowDoIT 2010-12-13
  • 打赏
  • 举报
回复
没错的,第二个要用到分步递增的。很多面试题都有这个的;

关于第一个,我也同意先小后大的原则!
super_marshal 2010-04-28
  • 打赏
  • 举报
回复
哥们,一起去笔试的吧,我两年经验开8k。市场就是被你这种人搞坏了,四年怎么样也得10k吧
lzhc2004 2010-04-28
  • 打赏
  • 举报
回复
终于明白了:原来是两个指针,一个每次前进两步,另一个每次前进一步,相遇则为闭环
sqcyg 2010-04-28
  • 打赏
  • 举报
回复
学习。。。。
欢乐极客 2010-04-28
  • 打赏
  • 举报
回复
第一个:


for (int k = 0; k < 10; k++){
for (int j=0; j < 100; j++){
for(int i =0; i < 1000; i++){
fun(i, j, k);
}
}
}


虽然循环次数相同,但是层与层之间的切换次数减少,可以提升效率。

第二个问题:
我有个思路,可能效率不是最高的。我的思路是按照顺序读取链表,然后没读取一个就记录下当前位置和当前位置指向的下一个位置,然后判断当前位置的下一个位置是否前面已读取过。当然,要自己写一个辅助结果去记录。
SambaGao 2010-04-28
  • 打赏
  • 举报
回复
学习了。。。都是牛人。。
haigan123456 2010-04-28
  • 打赏
  • 举报
回复
oh ,my god ,nonon
kondor 2010-04-28
  • 打赏
  • 举报
回复
for(int i =0; i < 1000; i++) 1001
for (int j=0; j < 100; j++) 1000*101
for (int k = 0; k < 10; k++) 1000*101*11
fun(i, j, k); 1000*100*10

for (int k = 0; k < 10; k++) 11
for (int j=0; j < 100; j++) 10*101
for(int i =0; i < 1000; i++) 10*101*1001
fun(i, j, k); 10*100*1000
iefus 2010-04-27
  • 打赏
  • 举报
回复
学习。。。。。。
mf0606 2010-04-27
  • 打赏
  • 举报
回复
我来看看……
Derrick-Hoh 2010-04-27
  • 打赏
  • 举报
回复
苦学中.....
zings 2010-04-26
  • 打赏
  • 举报
回复
4年7.5k?少了吧。。深圳 不到两年都5k了...
susuifeng 2010-04-26
  • 打赏
  • 举报
回复
循环比较优劣,输出运行时间看看...
不学-何为 2010-04-26
  • 打赏
  • 举报
回复
学习来了
xooxoo 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 amdgaming 的回复:]

2:怎样判断一个单向链表是一个闭环(链表的最后一个节点指向链表其中的一个节点),考虑最优方案。

一个 节点前进2个,后面的那个前进1,某个时刻 相遇 即为环
[/Quote]

这个算法很经典
楼主可能没看清楚,单向链表,都想一个方向走,只是步长不同而已

看看这里:
http://www.chinaunix.net/jh/23/410637.html



ZangXT 2010-04-26
  • 打赏
  • 举报
回复
即使能开7.5k也不算多,四年了
jwl_xyc 2010-04-26
  • 打赏
  • 举报
回复
叫我做第三轮的面试了,CSDN的大人们,4年开发经验深圳金蝶能开出多少,没有7.5K我懒得考虑了。
hjjk123 2010-04-26
  • 打赏
  • 举报
回复
mark...............
lzhc2004 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 groovy2007 的回复:]

引用 2 楼 amdgaming 的回复:

2:怎样判断一个单向链表是一个闭环(链表的最后一个节点指向链表其中的一个节点),考虑最优方案。

一个 节点前进2个,后面的那个前进1,某个时刻 相遇 即为环

不错
[/Quote]

只适用于这种情况吧: A-->B--->C--->B
A-->B--->C--->D--->E--->F--->B这种情况就不适用了吧

还是我理解错了?请指教
加载更多回复(9)

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧