编程之道

无论是批评的,赞扬的,指着的都请EMAIL给我,你的建议将是我前进的动力! 联系我

我的第一次面试经历

        其实只是面试前的一次笔试,30分钟时间。我那时比较紧张,因为这次的成绩对于能否进去是非常关键的。我初看一下感觉很简单,关于专业知识只有4道题目。第1道找错,错的太明显了以至于我怀疑是题目有问题。第2道是Vector和ArrayList的区别,仔细看过thinking in java中的集合框架的话很好回答的。第3道考了一道不超过15个字母的SQL语句-_-!。第4道是一道算法题,很郁闷~~这道估计浪费了我15-20分钟左右,而且还没做对。其他题目就诸如你爸贵姓?你妈贵姓?之类的无聊问题。
         那道算法题是打印:
A
BB
CCC
DDDD
..
YYYYYY..
ZZZZZZZ..

     当时我是这样写的:
for(int x=0;x<26;x++)
{
    
for(int y=x;y<26;y++)
    {    
                                        
        
char ch=65;            
        System.
out.print(""+(ch+x));
        
if(y>x){
            
continue;
        }                
    }
    System.
out.println ("\n");
}
不知道为什么,如此糟糕的代码我还提前5分钟交卷了。回家路上辗转反侧,非常失落。
不过还是整理了下思路,想了2种算法,不过还是下面的效率比较高。
for(int x=0;x<26;x++)
{
    
for(int y=x;y<x+x+1;y++)
    {                                    
        
char ch=65;            
        System.
out.print(""+(char)(ch+x));                
    }
    System.
out.println ("\n");
}
     
      这让我不禁想起了很久以前老师给我做一道猜数字游戏,要求是把猜过的数字排除掉。首先我确定肯定是放在数组里,我就用ArrayList把它实现了。后来老师说能不能优化一下,为此我又翻阅了thinking in java集合那章。决定用链表LinkedList实现,链表在增加删除之类的操作时效率是最高的。本想在老师边上狂炫耀一番,不过当老师说出它的算法时,我才觉得“孙悟空”和“如来”的差距不是一点点。很遗憾代码在学校,我又懒得写。就详细说下步骤把:
1.如果是猜10以内的数字,那么申明一个10个int值的数组int[] num={1,2,3,4,5....10};
2.如果随机数是5,我猜的是3的话;我就将num[2]=num[9],然后int[] num就={1,2,10,4,5....10}了。
3.第i次猜的话,我们排除num数组最后i项元素,然后直到猜对跳出。
       这次笔试我很不满意,估计考官已经把我CUT掉了5555555555。老实说我根本没想到要笔试,连笔还是旁边兄弟借的...我写下来,就是提醒大家面试的时候忧着点,别光顾着学习J2EE框架而忽略了基础中的基础。

posted on 2005-08-20 21:11 疯流成性 阅读(728) 评论(3)  编辑  收藏 所属分类: 程序人生

评论

# re: 我的第一次面试经历 2005-08-22 13:25 路过

是,这么简单得问题,该打屁股  回复  更多评论   

# re: 我的第一次面试经历 2005-08-30 20:59 王良

这样写的:
char ch='a';
for(int x=1;x<27;x++)
{
for(int y=0;y<x;y++)
{
Console.Write(ch);
}
ch++;
Console.WriteLine("");
}  回复  更多评论   

# re: 我的第一次面试经历 2006-07-19 11:45 zJun's帛罗阁

int ch = 'A' - 1;
for (int i = 1; i <= 26; i++) {
for (int j = 1; j <= i; j++) {
System.out.print((char) (ch + i));
}
System.out.println();
}

不是很复杂啊,是题目还有什么要求没有写出来吗?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: