大连思科宣讲

​ 周五大连思科来学校开宣讲会,和室友看完妇联3后时间刚好到笔试时间,就过去看看会有什么题,为下学期找实习做点准备。

​ 进教师听了几分钟宣讲后发笔试题啦,当发下来的那一刻,我是蒙逼的,题目全是英文,再一看题型,更是无语凝咽...15道计算机网络的,10道智力题,英译汉、汉译英。还有1道写网页的和3道算法题。

​ 我以为选择会考些java基础和数据结构什么的,计算机网络实在是忘的差不多了,题基本上是靠感觉了。智力题也就能做出来俩。

​ 写html就不讲了,直接说最后的算法吧。

​ 算法是3选2.

第一个 有序数组统计数字个数,最好不要用额外空间

例: {0,0,1,1,2,2,3,3,4}
输出:5

我当时想的是两个指针,i,j,一个计数器sum

如果arr不为空 sum初始为1

当 arr[i]!=arr[j]时 就说明是一个新的数字,sum+1,将i移动到j ,j=j+1

然后从头遍历

习惯性的直接俩循环

        for (int i = 0; i <num.length ; i++) {
            for (int j = i+1; j < num.length ; j++) {
                if (num[i] != num[j]){
                    sum++;
                    j=j+1;
                    i=j-2;
                }
            }
        }

然而我忘了 for里面的j++ ...

正确应该是这样的

        for (int i = 0; i <num.length ; i++) {
            for (int j = i+1; j < num.length ;) {
                if (num[i] != num[j]){
                    sum++;
                    j=j+1;
                    i=j-2;
                }
            }
        }

第二题是 求子字符串的位置 如果不包含子字符串的话 返回-1

KMP算法? 根本不会啊

当然也可以两个for循环像题一那样实现

不过效率很低就是

心态很炸 直接str.indexOf(str2)了..

总结嘛 自己好菜 再菜下去怕是实习没人要了。

猜你喜欢

转载自www.cnblogs.com/hehecat/p/9028432.html