小红书0827笔试

第一题:因为最少连续三个所以我们直接暴力然后如果连续三个乘积大于n退出判断,是n的立方根复杂度
第二题:右端点排序,然后贪心尽可能找是否重合,不重合就答案+1
第三题:一共要确定 i-k,i,j,j+k四个点对吧,我们可以先去找i-k和i,怎么去找i-k和i呢,其实就是从左往右找第一个逆序对,比如zbaba,(下标从1开始)那第一个逆序对就是下标为1和1之后字符小于z的值,所以i-k已经确定了是下标为1。然后我们再考虑怎么去找i,那我们首先肯定要找字典序最小的字符,在例子中就是a,如果有多个a,我们就要找能换且最靠后的a(因为我们还要考虑j,j+k,如果k太大可能后面不存在j,j+k)。找到最后一个a那我们已经确定i-k,i了。我们只要从i+1开始找第一个[j,j+k]的逆序对,如果不存在j,j+k的逆序对,那我们只需要换n-k,n就好了(可以感性理解一下)。时间复杂度为 O(n)
全部评论
点赞 回复 分享
发布于 昨天 18:03 上海
大佬啥岗位
点赞 回复 分享
发布于 昨天 18:00 北京
大佬全a了吗
点赞 回复 分享
发布于 昨天 01:32 广东

相关推荐

A了1.2 还能走到后面吗?
投递阿里云等公司10个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务