数组中重复的数字和查找

1、删除数组中重复数组,如果是已经排序的数组,引用变量index=0;i从1数组第二个数开始遍历,比较nums[i]!=nums[index],nums[index++]=nums[i]。

2、删除已经排序数组中超过N次重复数组,类似引用变量index=N-1,和上面类似。

3、找出数组中重复最多的值,可以使用hash表,用map。map[a[i]]=count即可,找到最大即可。

4、大数据数组N中找到最大的m个数,方法1:堆排序m个最小堆,如果后面值比m的最小堆头部大,加入到堆里面,调整堆。方法2:快速排序的部分,找一个数把数组中的值隔开头,二分找到最大m;

5、找到数组中元素个数超过一半的元素1:partition()函数,找到中间值。2:某个数的次数超过所有其他的数,result=nums[i],times累计。那么times累加相同元素,times累减不同的元素,times等于0重新数组新元素赋值给变量。

6、旋转数组中最小的数字,已排序,根据二分查找和比较。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值