贝壳找房第四题代码,时间复杂度o(nlogn)

题目:

样例:

代码:

n = 4 # 结点数
pairs = [[1,2],[3,4],[3,1]] # 边
child = [-1,2,0,1,0] # 孩子数 1-n 多加了个-1为了填充index=0
query = [[1,3],[4,1],[2,4]] # 查询对fa = list(range(0,n+1)) # 用来查找当前父亲,与并查集相同, pre[i] = i 初始化graph = [[0]*(n+1) for _ in range(n+1)] # 边图for x1,x2 in pairs:graph[x1][x2] = 1 # 把其变成无向图graph[x2][x1] = 1sum1 = 0 # 用来判断当前状态
'''
这里每一次只找当前的孩子(child[i]==0)的结点,将其与之相连的点j,若还有孩子数,将其设为其父亲,
并且将父亲结点的孩子数child[j] -= 1,并将child[i] 设为-1,
如果所有结点为-1,即child和为-n,说明树设置完成,sum1是用来判断是否找完。
'''
while sum1 != -n:sum1 = 0for i in range(1,n+1):if child[i] == 0:for j in range(1,n+1):if graph[i][j] == 1 and child[j] > 0:fa[i] = jchild[j] -= 1break # 只会有一个父亲child[i] = -1sum1 += child[i]
'''
--------------------------------------分割线------------------------------------------
下面开始设置查询步骤,
1、findpre 找到当前结点祖先的列表,并翻转便于搜索
2、findnearpre 判断两点关系。
'''
def findpre(u):fathers = []while u != fa[u]:fathers.append(fa[u])u = fa[u]fathers.reverse()return fathersdef findnearpre(u, v):u_list = findpre(u)v_list = findpre(v)if u in v_list:return 'ZZZZ'elif v in u_list:return 'SSSS'else:# 查找最后相等的结点值for i in range(0,min(len(u_list),len(v_list))):if u_list[i] != v_list[i]:return u_list[i-1]else:cur = u_list[i]return curfor u,v in query:print(findnearpre(u,v))

贝壳找房 9月7日 笔试题 第四题-查族谱相关推荐

  1. 金山java笔试题_今天去金山找java开发,其中的笔试题第一大题给吧友们看看

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是我做的,本来想用hashtable的,但是无序,所以考虑用了TreeMap.不过好在做了出来. =========================== ...

  2. 连亏三年!贝壳找房在纽交所上市,市值233亿美元

    贝壳找房在美国纽交所成功上市,股票代码为BEKE. 贝壳找房此次首次公开发行,发行价为每股20美元,稀释后总市值达233亿美元,总募集资金约24.4亿美元. 华兴资本在此次交易中担任主承销商.华兴资本 ...

  3. 互联网晚报 | 05月11日 星期三 | 贝壳找房启动新一轮裁员;苹果宣布停产iPod touch;朴新教育否认“宣布破产”...

    知网称正在反思,将择机向社会公开整改措施 5月9日,同方股份针对投资者留言回应称:知网在进行反思,并研究进行经营模式优化改善,积极进行整改.知网会将相关整改措施择机向社会公开.同方知网(北京)技术有限 ...

  4. 贝壳找房校招java笔试题_2020年最新贝壳找房java面试题分享

    下面要给大家带来的是2020年最新的一个贝壳找房java面经,具体内容是面试题介绍,一起来看看都问了哪些问题吧! 一.面试题 1.Java的特性你了解吗? 2.一个Java文件里面允许多个类被声明为p ...

  5. 纽交所钟声与左晖的贝壳找房新征程

    "BEKE",贝壳找房的新名号! 8月13日,美东时间9点30分,北京时间21点30分,伴随着一场疫情背景下特别举行的美国.北京两地云敲钟仪式,贝壳找房(股票代码"BEK ...

  6. 贝壳找房《2018城市居住报告》:新一线租房量持续攀升

    2019年1月24日,贝壳找房发布<2018城市居住报告>,聚焦租房和二手房交易人群,盘点分析了北京.上海.深圳.南京.武汉.长沙.重庆.成都.合肥等9大房产交易城市现状.报告发现,过去一 ...

  7. 贝壳找房的2021,依然充满变数

    配图来自Canva可画 2021年的贝壳找房充满变数,先是被指垄断,而后又失去了精神支柱一般的创始人左晖.在接二连三的打击中,贝壳发布了2021年上半年及第二季度财报,毫不意外贝壳找房业绩整体表现差强 ...

  8. 贝壳找房上海研发全员被优化,公司回应来了!

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 10月11日,不少网友在某社交平台上爆料称,贝壳找房上海研发全员被优化,裁员补偿为"N+3". 贝壳找房回应 ...

  9. Python爬虫 | 爬取贝壳找房8万+二手房源,看看普通人在北京买房是有多难!

    文章目录 1.概述 2.数据采集 3.数据清洗 3.1.读取数据 3.2.去掉车位(地下室)数据 3.3.房源信息解析 4.数据处理及可视化 4.1.各地区二手房源数 4.2.各地区二手房均价 4.3 ...

最新文章

  1. 课题背景 一二三代测序技术
  2. dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解
  3. Struts+Spring+Hibernate整合入门详解
  4. 华南理工计算机考试题,华南理工考研计算机历年真题
  5. 虚拟主机跟php,php虚拟主机和服务器(云服务器跟虚拟主机)
  6. C# 将PowerPoint文件转换成PDF文件
  7. 获取字符串内双引号中的所有内容
  8. 老男孩的运维笔记文档-高级部分(系统架构师)列表(三)
  9. 搞清楚一道关于Integer的面试题
  10. (47)FPGA同步复位与异步复位(异步复位同步释放)
  11. azure未连接_将Azure Databricks数据连接到Power BI Desktop
  12. c++ 调用windows tts_有关调用约定的历史 – 第三部分
  13. Stata | 初试
  14. 分享NI卸载工具(免费)
  15. 读书笔记 | 《人间处方》夏目漱石写给青年的信
  16. poi 同时 冻结第一行和第一列
  17. 关于手画猫,耳朵涂颜色
  18. QString 转toLatin1 toUtf8 toLocal8Bit区别
  19. Godot实现项目差异热更新
  20. 文章翻译:Recommending items to more than a billion people(面向十亿级用户的推荐系统)...

热门文章

  1. tableau-行计算、视图计算、表计算
  2. P3258[JLOI2014]松鼠的新家(LCA 树上差分)
  3. 木子-前端-方法标签属性小记(普通jsp/html篇)2018
  4. MAVEN下载历史版本
  5. 曼谷周末游(r5笔记第74天)
  6. 最专业的职业生涯规划测试集合(推荐)
  7. vue组件引入scss变量_SCSS特色的Vue.js ui组件设计系统
  8. 咕咕机显示服务器请求异常,咕咕机云服务器异常
  9. idea中没有 program arguments 选项
  10. ureport2 vue版本实现