在人群中找出以为明星人士。该明星不认识其他人群中的其他人,但是人人都认识这位明星。
暴力求解方案:

def naive_celeb(G):n = len(G)for u in range(n):for v in range(n):if u ==v:continueif G[u][v]: breakif not G[v][u]:breakelse:return ureturn None

为了将问题规模将n简化到n-1,我们就必须先找一位非明星人士,也就是说,要么这个人认识某人,要么谁也不认识。
1.也就是如果我们检查u、v中任何一个节点的G[u][v],就可以排除一个节点
2.如果G[u][v]为True,我们就排除u否则排除v。
接下来我们能确保其中存在一位明星人士就足够了。否则,我们仍需要继续排除那位候选者以外的所有人,但是我们需要通过检查他们是否是明星来完成这件事。
解决方案:

def celeb(G):n = len(G)u,v = 0,1for c in range(2,n+1):if G[u][v]:u=celse:v=cif u==n:c=velse:c=ufor v in range(n):if c==v:continueif G[c][v]:breakif not G[v][c]:breakelse:return creturn None
from random import randrange
n =100
G = [[randrange(2) for i in range(n)] for i in range(n)]
c = randrange(n)
for i in range(n):G[i][c] = TrueG[c][i] = False
print(naive_celeb(G))  --54
print(celeb(G)) ---54

随机的,结果不一定是54

[数据结构][Python][经典题目]明星问题相关推荐

  1. 百看不如一练 100道python经典题目,拿去参考学习练手(附答案)可复制

    近年来,Python在编程语言界里赚足了风头,无论是受欢迎程度,还是薪资待遇,都非常可观,相应的,Python岗位要求也越来越高,无论你是零基础还是老前辈,在Python面试中都不能轻视. 不打无准备 ...

  2. [课程复习] 数据结构之经典题目回顾 (一)选择题、填空题1

    作者最近在复习考博,乘此机会分享一些计算机科学与技术.软件工程等相关专业课程考题,一方面分享给考研.考博.找工作的博友,另一方面也是自己今后完成这些课程的复习资料,同时也是在线笔记.基础知识,希望对您 ...

  3. 【Python经典题目】闵可夫斯基距问题

    题目 定义一个高维空间样本点集类HDPoints,须包含以下数据属性与方法属性: (a)数据属性self.points:类型为列表,由多个子列表构成,每个子列表表示高维空间中的一个数据点,且数据维度可 ...

  4. python内建函数使用方法_python基础学习笔记(实用的内建函数和经典题目收集)...

    说明:本手记大部分知识点摘自菜鸟教程,包括代码示例.(菜鸟教程的学习资源真心很好用,把它当查询工具书灰常给力) 1. 字符串方法中的string模块 maketrans ( ) 和translate( ...

  5. Python数据结构与算法题目 打印二叉树的左视图 打印二叉树的右视图 树的左视图 树的右视图

    阅读目录 题目描述 思路与Python实现 题目描述 输入一棵二叉树,求出树的左视图,或者右视图,如下图所示,的两种情况 思路与Python实现 如果可以用非递归的方式写出二叉树的深度遍历或者广度遍历 ...

  6. c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解

    C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...

  7. python经典案例-Python经典实例

    本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题.主要内容有:数字.字符串和元组,语句与语法,函数定义,列表.集.字典,用户输入和输出等内置数据结构,类和对象, ...

  8. Python 经典模块可能都学过,10道题测试你会不会用?

    Python 作为 2021 年度最受欢迎的编程语言,备受众人瞩目,也很受新手小白喜爱.除此之外,它在很多领域都发挥其作用,比如大数据.无人驾驶.Web 开发等等. [敲重点] 蓝桥云课即将在 202 ...

  9. python 经典100例 (61-80)

    python 经典100例(61-80) ''' [程序61] 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: ''' if __name__ == '__main__': a = ...

最新文章

  1. Java锁的种类以及辨析(二):自旋锁的其他种类
  2. 1.mongodb在centos上面安装
  3. 教你用代码奏响天空之城! (C++中发声函数Beep详解)
  4. c#NPOI读取excel 比interop和Microsoft.Jet.OLEDB.4.0 之类 的好的多
  5. Guava Cache探索及spring项目整合GuavaCache实例
  6. 搜集到的数学分析例题(不断更新)
  7. 数据结构与算法(一):排序算法之 - 快速排序(详细步骤图解,附代码)
  8. linux系统备份路径,linux系统备份恢复到本机或是别的机器上
  9. java 快死了_如果Java快死了,那么它肯定看起来非常健康
  10. pandas 合并所有列_图解Python表格操作包Pandas
  11. 《编码-隐匿在计算机软硬背后的语言》第七章我们的十个数字
  12. 票据通的支票管理的账户管理的对应账号支票已使用该怎么重新修改票据打印模板;
  13. 手机WIFI共享 打造便携式WIFI热点
  14. 如何使用计算机管理员账户密码是什么意思,电脑管理员密码是什么
  15. html消除冒泡,取消冒泡.html
  16. maven 中使用jdt编译代码
  17. 强化学习个人学习总结
  18. 钉钉小程序复选框 全选反选 表单获取内容有误处理
  19. openwrt web升级功能介绍
  20. JSONObject的toBean 和 fromObject

热门文章

  1. python字符串转list(python字符串转数字)
  2. 【项目】问答系统-代码-后台
  3. 有哪些常见的字节码指令?
  4. 第七篇章——垃圾回收概念及相关算法
  5. Linux下安装miniconda
  6. [渝粤教育] 西南科技大学 法律文书写作 在线考试复习资料(1)
  7. tddl+diamond(一)
  8. CSS 绝对定位与相对定位
  9. 服务器修改内网IP地址
  10. MSCKF 2.0 理论推导以及能观性分析