阿里笔试题:在n个人中找明星
题目描述:有N个人,其中一个明星和n-1个群众,群众都认识明星,明星不认识任何群众,群众和群众之间的认
识关系不知道,现在如果你是机器人R2T2,你每次问一个人是否认识另外一个人的代价为O(1),试设计
一种算法找出明星,并给出时间复杂度(没有复杂度不得分)。
----------------------------------------------------------------------------
一种思路:取出两个人,如1号和2号,如果1号认识2号,那么1号不是明星,去除1号;如果1号不认识2号,那么2号不是明星,去除2号。如此比下去,遍历一遍,即可找出明星(剩下的那个)。时间复杂度O(n)。
用两个指针i和j分别指向前、后的两个人,比较一次根据比较结果做一次位置调整。
bool isRecgn(int i,int j); //判断i是否认识j //n个人中找明星 n>1
int find(int a[],int n)
{
int i=0,j=1;
int cand = i;
while(j<n)
{
if(isRecgn(i,j)){
cand = j;
i = j;
if(++j>n)
break;
}
else{
cand = i;
if(++j>n)
break;
}
}
return cand;
}
阿里笔试题:在n个人中找明星的更多相关文章
- 【Android归纳】阿里笔试题之Android网络优化
记得这是阿里校招笔试的一道问答题 答案是小伙伴们之后一起拼出来的,不乏有些飘忽的东西,须要的朋友能够做个參考(详细细节能够自行百度).欢迎提出更好的建议. 在client方面: 1.降低网络请求的数量 ...
- 图森未来一道笔试题-迷宫难题【BFS找S->E的最短步数】
时间限制:3秒 空间限制:262144K 图森未来的自动驾驶小卡车今天被派到了一个陌生的迷宫内部运输一些货物. 工程师小图已经提前拿到了这个迷宫的地图,地图是一个n*m的字符矩阵,上面包含四种不同的字 ...
- Python 的笔试题
其实大多数说学习Python 是纯兴趣,真的我不信,许多人已经工作了,没有那么多时间搞自己的纯兴趣了,都会为了生活奋斗,可以说转行来学python 就是未来加薪,当然,小编现在也快要准备工作了,所以也 ...
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- [c#基础]关于try...catch最常见的笔试题
引言 在翻看之前总结的常见面试题中,关于try...catch异常处理的还是蛮多了,今天看到这个面试题,也就重新学习一下. try..catch语法 try-catch语句由一个try块后跟一个或多个 ...
- js作用域之常见笔试题,运行结果题
笔试题中经常有运行结果题,而大多体型都是围绕作用域展开,下面总结了几种相关的题: 外层的变量函数内部可以找到,函数内部的变量(局部变量)外层找不到. function aaa() { var a = ...
- C/C++ 笔试题
/////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...
- DP - 2016网易杭研笔试题A
2016网易杭研笔试题A Problem's Link ------------------------------------------------------------------------ ...
- Web前端面试笔试题总结
最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面 ...
随机推荐
- 萌新笔记——Cardinality Estimation算法学习(一)(了解基数计算的基本概念及回顾求字符串中不重复元素的个数的问题)
最近在菜鸟教程上自学redis.看到Redis HyperLogLog的时候,对"基数"以及其它一些没接触过(或者是忘了)的东西产生了好奇. 于是就去搜了"HyperLo ...
- Oracle创建用户设置权限
(转:http://www.cnblogs.com/yangy608/archive/2011/08/22/2148893.html) create user TEST identified by & ...
- gridview安卓实现单行多列横向滚动
<GridLayout android:layout_width="match_parent" android:layout_height="match_paren ...
- jquery ajax在跨域访问post请求的时候,ie9以下无效(包括ie9)
1. 设置浏览器安全属性,启用[通过域访问数据源]选项,如图:
- Spring之BeanFactory及Bean生命周期
1.spring通过BeanFactory灵活配置.管理bean,Spring对管理的bean没有任何特别的要求,完全支持对POJO的管理: 2.BeanFactory有个ApplicationCon ...
- CentOS 6.5 升级 PHP 到5.6
1. 首先先看下已安装的版本: yum list installed | grep php 可以看到我的都是5.3的 php.x86_64 -.el6_8 @updates php-cli.x86_6 ...
- ElasticSearch第四步-查询详解
ElasticSearch系列学习 ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSea ...
- [网站性能1]对.net系统架构改造的一点经验和教训
文章来源:http://www.admin10000.com/document/2111.html 在互联网行业,基于Unix/Linux的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为 ...
- 判断是pc端还是手机端,并跳转到相应页面
<!-- 判断浏览器是否为手机端 --> <script> // class ! function(navigator) { var user ...
- VUE---Missing space before function parentheses
解决方法: