猿辅导提前批一面JAVA凉经
听说是猿辅导第二轮把我捞起来了
猿辅导小哥冷漠又体贴,帮我debug太让人感动了
15min自我介绍+项目介绍+基础知识
40min代码
- 详细讲一下你的项目
- 详细说一下gc,gc的算法,垃圾回收收集器
- 如果在整理的过程中,还可以再分配内存吗?
- 算法题:int [] arr = {1,2,2,3,3,3,3,4,4,4,5,5,10}. k = 2. 如果次数大于2就删除。返回{1,2,2,5,5,10}
- 算法题:一个双向链表,拆成奇数链表和偶数链表。
/** * 猿辅导一面 * 算法题:int [] arr = {1,2,2,3,3,3,3,4,4,4,5,5,10,10}. k = 2. 如果次数大于2就删除。返回{1,2,2,5,5,10} */ public class interview01 { public static void main(String [] args) { int [] arr = {1,2,2,3,3,3,3,4,4,4,5,5,10,10}; int k = 2; interview01 solution = new interview01(); System.out.print(solution.arrDel(arr, k)); } public int arrDel(int [] arr, int k) { // res代表有效数字的个数,也代表下一个可以插入的地方 int res = 0; int count = 1; int len = arr.length; for (int i = 0; i < len-1; ++i) { if (arr[i] == arr[i+1]) { count++; } else { // ok if (count <= k) { for (int j = 0; j < count; j++) { arr[res+j] = arr[i]; } res = res + count; } count = 1; } } // 判断最后一个是否满足条件 if (count <= k) { for (int j = 0; j < count; j++) { arr[res+j] = arr[len-1]; } res = res+count; } for (int i = 0; i < len; ++i) { System.out.print(arr[i] + " "); } return res; } }#Java工程师##校招##猿辅导##面经#