进军大厂-从零开始算法基础(6)求出最多标记下标--力扣 go

题目介绍


解题代码

注意事项及问题

        这里主要解释一下为什么排序后从二分之n开始划分,首先要搞清楚,在本题的条件下,每个元素最多只能配对一次,也就是说,整个规模为n的数组,最多只能有2/n个配对。在这个前提条件下,我们可以假设一个极端情况,1,2,3,4,5,333,444,555,666,777。在这种情况下,我们可以非常明显的看出配对数量为5。

        大家对于为什么从2/n开始最优的疑问可能就是考虑在前半段中发生配对时,是不是配对数会高一些。我们以这题为例明显1可以与以后的每个元素配对,这时我们假设他与4匹配,然后我们脑海里两个指针指向1,4,然后对这两个指针向后平移,可以看出当指向1的指针指向3时,指向4的指针指到333,但是这时只剩下后面四个元素,且后面四个元素都是无法配对的。总结起来就是,小的能和前半部分配对那就一定能和后半部分配对,而后半部分又保留了与前半部分配对的数量,所以这种二分分配方式不会影响最终结果。

        当然这只是一种情况,但是大家可以用这种指针平移的方式在类似数组中滑动尝试一下,就会发现2/n处分开匹配的妙处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值