相关题目:
针对于一维数组的去重,主要有两种方式;
1、时间复杂度O(n*logN) ,空间复杂度O(1)
先对数组排序,接着对记录数组的前一个元素的值,来进行比较处理
class Solution {
public int expectNumber(int[] scores) {
//详情见推导过程,实际上为数组的去重
Arrays.sort(scores);
int index=-1; //选取一个数组中不会存在的数
int res=0;
for(int i=0;i<scores.length;i++){
if(scores[i]!=index){
res++;
index=scores[i];
}
}
return res;
}
}
2、时间复杂度O(N),空间复杂度O(K)[非重复数组的个数]
使用HasMap或者HashSet进行处理,代码略
3、在数组中查找中位数:时间复杂度O(N),空间复杂度O(1)
使用双指针,一个又由右向左遍历,另一个由左向右遍历,同两个指针相等的时候通知循环,在取平均。
于/2020/10/14开始编辑,持续更新