阿里 4月14笔试 --校招

两道编程题:
已AC一道  另外一道通过百分之30case。

第一题:求出最大密集度,题意大概如下(原文不记得啦):给定一个n(数组的长度)   给定一个数组,对于这个数组中必存在一个k值,在该数组中有连续的k个数均大于k,求出最大的k值。

例:
输入:
5
3 1 4 5 2
输出:
2

例如:
输入:
5
1 2 3 4 5
输出:
3

这道题只通过了 30%  也不知是那里出现了问题....个人用的是优先队列结合动态规划去做,不断的更新最优值(下面附上代码 恳请大佬指正)

#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++)
cin>>arr[i];

int best_ans=1;  //最优值最下肯定为一

priority_queue <int ,vector<int> ,greater<int> > prip;    //让最小的在队头,因为只需比较最小的和k的关系
for(int i=0;i<n;i++)
{
prip.push(arr[i]);
int k = prip.size();
if(prip.top()>=k)      //满足添加进去的规则
{
best_ans=max(best_ans,k);   //更新最优值
}
else
{                      //不满足添加进去,把队列清空
while(!prip.empty())
prip.pop();

prip.push(arr[i]);    //从当前位置再次探寻。
}
}
cout<<best_ans;
return 0;
}


第二题:
求城市群个数,以及城市群包含的城市数。

题意大概如下:城市之间能互达则这两个城市属于同一个城市群,原每个城市之间都有两两互通的铁路(双向可达),但现在损毁了部分铁路,求城市群个数,以及城市群包含的城市数(升序排列)。
输入:
给定城市的个数n  以及m条损毁铁路的信息
如:
5 5
1 2
2 3
2 4
2 5
3 4

输出:
2
1  4
(一个城市群是2   一个是1 3 4 5)

  • 题解:已AC。
#阿里巴巴##笔经#
全部评论
第一个二分a
点赞 回复 分享
发布于 2021-04-14 11:30
请问下第二道应该咋解呀
点赞 回复 分享
发布于 2021-04-14 10:34

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
评论
2
5
分享

创作者周榜

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