题解 | #相差不超过k的最多数#

相差不超过k的最多数

https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6

#include <stdio.h>
#include<stdlib.h>

void merge(int *arr,int l,int m,int r)
{
    int templ=l,tempr=m+1,sum=0;
    int *temp=(int *)malloc((r-l+1)*sizeof(int));
    while(templ<=m&&tempr<=r)
    {
        if(arr[templ]>arr[tempr])
        temp[sum++]=arr[templ++];
        else temp[sum++]=arr[tempr++];
    }
    while (templ <= m) { 
        temp[sum++] = arr[templ++];
    }
    while (tempr <= r) { 
        temp[sum++] = arr[tempr++];
    }
    for(int i=0;i<sum;i++)
    {
        arr[l+i]=temp[i];
    }
    free(temp);
}

void msort(int *arr,int l,int r)
{
    int m=l+(r-l)/2;
    if(l<r)
    {
        msort(arr,l,m);
        msort(arr,m+1,r);
        merge(arr,l,m,r);
    }
}

int arr[200000];
int main() 
{
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    msort(arr,0,n-1);
    int l=0,r=1,mx=0;
    for(int i=l;i<n-1;i++)
    {
        while(r<n&&arr[i]-arr[r]<=k)
        {
            if(r-i+1>mx) mx=r-i+1;
            r++;
        }
    }
    printf("%d\n",mx);
    return 0;
}

全部评论

相关推荐

虚闻松声:简历看起来很清爽。几点建议。 1. 总结提炼项目工作内容。如第一个项目第一点,研发用户信息管理、购票功能:(然后具体展开)。还可以继续总结,如基础功能开发、算法优化座位分配、并发性能提升等等 2. 优化技术栈描述。全文多次出现Spring Boot,我感觉一次就够了。可以不写或者写整个体技术架构? 3. 增加业务指标描述。最好有一些业务效果的指标。或者优化的效果指标等等。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-27 17:55
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务