主题:两道JAVA笔试题
面试有两道笔试题没写出来,请多多各位帮帮忙
题目一:一个数组,“支配者”是在数组中出现频率超过一半的整数, 例如[3,4,3,2,-1,3,3,3]数值“3”出现过5次,5除以8大于0.5 所以数值“3”是一个支配者; 而在这个数组中的支配者出现在数组下标[0,2,4,6,7]
写一个函数,在给定的整数数组中找出支配者所在的任意一个数组下标,如果一个数组中没有支配者返回-1。
题目二:“有序数组中绝对值不同的数的个数”指的是,一个已经排好序的整数数组中,绝对值不相同的数字的个数。例如:[-5,-3,-1,0,3,6].请返回给定有序数组中绝对值不同的数的个数。
第一道题我当时用map做,第二道题用set做,都做出来了,但是考官要求不能用JAVA的类库,并且要尽可能降低时间复杂度,在规定的时间内没想出一个好办法,笔试也就没通过了,所以请教一下大家怎么样才能做出来?
谢谢各位!
题目一:一个数组,“支配者”是在数组中出现频率超过一半的整数, 例如[3,4,3,2,-1,3,3,3]数值“3”出现过5次,5除以8大于0.5 所以数值“3”是一个支配者; 而在这个数组中的支配者出现在数组下标[0,2,4,6,7]
写一个函数,在给定的整数数组中找出支配者所在的任意一个数组下标,如果一个数组中没有支配者返回-1。
题目二:“有序数组中绝对值不同的数的个数”指的是,一个已经排好序的整数数组中,绝对值不相同的数字的个数。例如:[-5,-3,-1,0,3,6].请返回给定有序数组中绝对值不同的数的个数。
第一道题我当时用map做,第二道题用set做,都做出来了,但是考官要求不能用JAVA的类库,并且要尽可能降低时间复杂度,在规定的时间内没想出一个好办法,笔试也就没通过了,所以请教一下大家怎么样才能做出来?
谢谢各位!