头条笔试第一题解法

#include <malloc.h> #include <cstdio>  //<n true; bool distance(int left, int right, int length, int n)
{ bool flag = false; if((right-left)<=n || (left+length-right)<=n)
        flag = true; return flag;
} int main()
{ int m, n, c;
    scanf("%d%d%d",&m,&n,&c); int** input = (int**)malloc(sizeof(int*)*m); int* length = (int*)malloc(sizeof(int)*m); bool color[c][m]; for(int i = 0; i<c;i++) for(int j=0;j<m;j++)
            color[i][j] = false; for(int i=0;i<m;i++)
    {
        scanf("%d",&length[i]); int* temp = (int*)malloc(sizeof(int)*length[i]);
        input[i] = temp; for(int j=0;j<length[i];j++)
        {
            scanf("%d",&input[i][j]);
            color[input[i][j]-1][i] = true;
        }
    } int result = 0; for(int i=0;i<c;i++)
    { int index = 0; int pre = 0; while (!color[i][index])
            index++;
        pre = index; for(int j = pre+1;j<m;j++)
        { if(color[i][j])
            { if(distance(pre,j,m,n))
                {
                    result++; break;
                } else  {
                    pre = j;
                }
            }
        }
    }
    printf("%d\n",result); return 0;
}
#字节跳动#
全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务