java笔试--一维数组

相关题目:

LCP 11. 期望个数统计

针对于一维数组的去重,主要有两种方式;

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开始编辑,持续更新

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值