分享两个今天雷火的测试岗面试题

1. 一个小型的算法题,有一个长度未知的无序数组(无法获取数组长度,不许排序,数组元素为int范围内的任意值),如何找出第一个连续出现的重复的数(比如 4 3 4 3 5 5,找出的数是5)

楼主只会遍历一次找出这个数,面试官问有没有可能复杂度更优化一点,让我回去想想。。


2. Java里写一个方法,这个方法里只有一条语句,即new一个对象。方法结束以后这个对象怎么回收的?

楼主之前背了一段gc过程,但是并不清楚怎么回答。

牛油们能给个思路吗,谢了


#网易#
全部评论
第一题在读入的时候开个变量记录上一个读入的数就OK了
点赞 回复 分享
发布于 2018-04-04 20:18
第一题O(N)复杂度难道不是最优的吗?
点赞 回复 分享
发布于 2018-04-04 20:24
第一题是不是没有听清楚啊,感觉“不能排序”和“第一个连续出现的重复的数”有矛盾
点赞 回复 分享
发布于 2018-04-04 20:58
new对象是强引用
点赞 回复 分享
发布于 2018-04-05 01:12
第一题用堆来做,规定堆不能出现重复的数字,遇到重复的就break掉,返回这个值
点赞 回复 分享
发布于 2018-08-26 12:07
 public static int firstcurr(int[] arr){       int tmp=arr[0];       for (int i = 1; i < arr.length; i++) {         if (arr[i]==tmp) {             return arr[i];         }else{              tmp=arr[i];         }               }           return 0;           } 如果重复的数字靠前,复杂度不到O(N)的
点赞 回复 分享
发布于 2018-08-26 15:46
每读入一个和上一个元素异或?
点赞 回复 分享
发布于 2018-08-26 15:53

相关推荐

点赞 15 评论
分享
牛客网
牛客企业服务