程序员面试题—国内知名IT公司面试经历

今天进行了公司的处女面,发现自己经验真的是差了很多,针对一个简单的问题,没有细细的去考虑这里面的任何陷阱,这些题目是很简单,比如:二分查找,字符串查找。这两个看似简单的小编程题,你能考虑到所有情况吗?把代码的健壮性写的很完全吗?

比如二分查找:

public int binarySearch(int[] dataset, int data) {
              int beginIndex = 0;
              int endIndex = dataset.length - 1;
              int midIndex = -1;
              if (data < dataset[beginIndex] || data > dataset[endIndex]|| beginIndex > endIndex)//这个也是相当的重要
                     return -1;
              while (beginIndex <= endIndex) {
                     midIndex = (beginIndex + endIndex) >>> 1; //相当于midIndex = (beginIndex + endIndex) / 2,但是效率会高些
                     if (data < dataset[midIndex]) {
                            endIndex = midIndex - 1;
                     } else if (data > dataset[midIndex]) {
                            beginIndex = midIndex + 1;
                     } else {
                            return midIndex;
                     }
              }
              return -1;
       }

上面的问题你都考虑到了吗?

字符串翻转:

我们看下下面这个网友的代码

int strlens (char str[])
{
 int len=0;
 while(str[len]!='\0')
  len++;
 return len;
}
void ExchangeStr (char str[])
{
   char *first=str,*last,ch;
   int i=strlens(str);
   last=first+i-1;
   while(last>first)
   {
      ch=*last;
     *last=*first;
     *first=ch;
     first++;
     last--;
   }
}

大家分析下有没有问题呢!?

一个致命的问题:没有判断字符串是否是空字符串,这在面试的时候很看重你的细节,所以大家还是要好好的注意细节。

还有一些题目:

1、计数排序;

2、堆排序;

3、大数据量的处理;

4、快速排序;

5、两个链表的公共节点;

6、一个单链表,不知道头指针,只知道中间元素i的指针,现在删除指针i指向的元素;

7、单链表的反转。

整个面试过程还是很流畅的,已经去就是自我介绍,然后就开始问项目,而且是死问啊,半年了都,很多都记不清楚了有木有。然后就是写上面的两个小程序,然后就是各种扯,工作地点啊,实习时间啊,为什么选择整个工作地点,你现在在学校的工作是什么啊!如果让你去实习,你老板会放人吗?

面试的难度不大,关键是看你的当场表现的如何!

自己的处女面就这样过去了,今天下午还要被数字公司轮奸,听说三面一起!我的妈妈呀!祈祷自己好运啊!


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值