两个条件:
1.有1到N共N个人,且提供一个函数reg(i,j)表示如果i认识j,则返回true,如果不认识返回false,注意这里i认识j并不一定代表j认识i,即不具有对称性
2.明星被其余的N-1个人认识,但是他不认识N-1个人当中的任何一个。 
给定这两个条件,用O(N)的算法找出N个人当中的明星

遍历 1~n 这n个人;
首先取出 1号 和 2号, 如果 1 认识 2, 那么把 1 去掉;--如果1不认识2,就可以把2去掉了。
如果 2 认识 1, 那么把 2 去掉;
如果 1 和 2 都互相不认识,把他们都去掉; 
如果有剩下,在拿剩下的和3号进行比较;
如果没有剩下的,则拿出3号和4号进行比较;

如此循环;
最后若剩下最后1个人,再遍历一遍看是否剩下的n-1个人都认识它

时间复杂度分析:
每对之间的比较最多比较2次, 每对之间的比较至少淘汰1个人,要淘汰n-1个人最多比较 2*(n-1)次;
所以时间复杂度是 O(n)的

如何在1到N个人当中找出明星?相关推荐

  1. 如何在10亿个整数中找出前1000个最大的数?

    作者:vincent-duan,专注 Java,沉迷开源,架构师社区合伙人! 面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一 ...

  2. 如何在10亿个整数中找出前1000个最大的数(TopN算法)

    面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一次循环找到数组中最大的元素放置在倒数第一个位置,第二次循环找到第二大的元素放置 ...

  3. JS笔记(字符串篇)——字符串当中找出元素出现的位置和次数统计字符串中出现最多元素的字符与次数

    文章目录 字符串的特性 字符串的不可变性: 常用的几个函数 1,☆indexOf 返回字符所在位置 indexOf('字符') 返回字符所在的位置,如果不存在,则返回-1 indexOf('字符' , ...

  4. 在linux中查找重复的文件夹,如何在Linux上找出并删除重复的文件:FSlint

    大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件.这里有一款工具你可以工具自己的需要使用. 无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重 ...

  5. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  6. 如何在 10 亿数中找出前 1000 大的数?

    作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已 ...

  7. C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)...

    3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子 ...

  8. linux误修改文件名恢复,如何在 Linux 中找出最近或今天被修改的文件-linux修改文件名...

    Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在 ...

  9. 如何用excel计算断色断码_如何在EXCEL里面快速找出断码的衣服

    款式名称款式编码颜色名称SMLXL2XL3XL4XLT恤PB2008浅紫012227T恤PB2028白色003216T恤PB2028熟黄002003T恤PB2029白色0073313T恤PB2029大 ...

最新文章

  1. R语言构建xgboost模型:自定义损失函数(目标函数、loss function、object function)、评估函数(evaluation function)
  2. 将shp文件导入到GeoDatabase中
  3. 【深度学习】基于Pytorch的卷积神经网络概念解析和API妙用(二)
  4. 初学python还是swift-请问零基础学习python 和swift哪个更好入门呢?
  5. ListView相关
  6. 剑指offer(20)包含min函数的栈
  7. 想转行人工智能?哈佛博士后有话说!
  8. 工业设计对计算机技术的应用,计算机在产品设计的应用
  9. 如何破解加密的PDF文件
  10. PS的钢笔,路径,选取,描边(虚线)
  11. POJ-2184 Cow Exhibition---01背包变形(负数偏移)
  12. 我是路人甲,请你为我祝福
  13. 算法第二章上机实践报告
  14. 妖魔复苏:天师下山!开局传承天师度(二)
  15. 父爱动画代码python_python表白实现代码(可视化与动画版)
  16. OCTAFX滑点滑到令人发指 现在出金也不给出金是黑平台无疑了
  17. 微信公众号自定义菜单如何添加emoji表情图标?
  18. csgo服务器响应参数,csgo必备弹道参数 影响弹道参数设置
  19. java123456
  20. 英语流利说效率计算机制,英语流利说 懂你英语 10天效率从60到90经验

热门文章

  1. 设计模式(10)[JS版]-JavaScript如何实现组合模式???
  2. 比例模型 scale model
  3. 开源项目推荐:OpenGL之gult/freeglut/glew/glfw/glad的联系与区别
  4. ARM AArch32和AArch64通用寄存器、状态寄存器
  5. JavaScript 中的数字在计算机内存中占多少个Byte?
  6. 用C语言求三位数的回文素数,C语言求回文素数
  7. 南理工校外调剂计算机有消息,提醒!这些学校已经开启预调剂了!
  8. git clone报错:SSL certificate problem: unable to get local issuer certificate
  9. java什么时候定义方法,持续更新~
  10. 年度绩效考核演示PPT模板