南京中兴提前批面试经验 java软件开发岗位
中兴的软件开发岗位,简历很早以前就在官网注册过了,今天去面试,休息室的hr姐姐说,收到上百份简历,经过筛选,能接到短信通知来面试的,都是因为简历匹配度比较高的。下午来到中兴南研所,登记一下,人齐了有hr带到休息区,然后是笔试,五道编程,自己选择至少做两道即可,半小时时间,题目比较简单,数组求和,字符串折叠,文件内容去重复,队列实现,还有一道C的,我不会c就没写。时间到了,会有面试官叫名字去面试,面试问实习的内容,问的比较具体,我实习做的比较简单,被鄙视了一下。然后问项目,让我在黑板上一边画系统图一遍讲解,然后两个面试官问问题,问了里面的多线程锁的机制等。我准备的比较充足,项目讲的还不错。然后就聊聊读研期间的科研工作。最后问了家庭情况,意向城市。总结一下:对自己做过的东西要能清楚的表达,原理要懂,结构要清晰!希望能过!加油!
#中兴#编程题一:数组求和,问题描述:在一个数组(无序)中快速找出两个数字,使得两个数字之和等于一个给定的值。 假设数组中肯定存在至少一组满足要求。 解法一:暴力搜索法,时间复杂度O(n^2); 解法二:考虑先将数组arr排序,利用两个指针left和right指向排好序数组的某两个值,初始化left=0,right=len-1,其中len 为数组长度。当arr[left]+arr[right]=sum时,则找到答案返回;当arr[left]+arr[right]>sum, 时,right--;当arr[left]+arr[right]<sum时,left++。循环上述过程,若找到则返回,否则直至 left=right说明没有解。最后在原数组中找到符合要求的两个数的位置即可。时间复杂度O(nlogn)。 编程题二:判断字符串是否是中心对称。 解法: 一条代码 boolean result = str.reverse().equals(str); 可以扩展一下:判断字符串中对称字符串的个数 解法一:1.分解字符串,如输入字符串“eegff”,先从第一个字符开始'e'按如下的方法分解:ee、eeg、eegf、eegff; 2.每分解一个字符串出来存储到一个字符数组中,在到数组中循环判断该字符串是否是对称的; 3.如果判断是对称字符串,则用一个统计变量自增一。依照1、2步骤一次从下一个字符串开始分解判断,一直到倒数第二个字符 解法二: 1、遍历这个字符串,先选定头位置为第一个字符, 2、然后从最后向前遍历这个字符串,头尾两个字符相同,则取中间字符串,进行递归。 3、递归结束后得到结果,继续将头向后推1位,然后再从字符串最后向前遍历,如此循环,当尾等于头时,退出最外层循环,输出结果。 编程题三: 实现按行读取文件并且将行中的重复数据删除 解法:读取文件,将每一行用Set存储,最后再将Set输出到新的文件中 编程题四:实现一个循环队列 解: 循环队列可以有效的利用资源。如果使用普通数组实现队列时,如果不进行移动,随着数据的不断读写弹出插入,会出现假满队列的情况。 例如不断向队列中添加元素,然后在弹出元素。这是弹出元素所空闲出来的空间并没有得到重复利用,这是就会出现数组尾部已经满了,但是头部还有空闲空间没有得到利用。 入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针