当前位置: 首页 > article >正文

面试-二维数组

应用

快递业务有N个站点,1<N<10000;站点0、站点1可达,记作0-1;如果0-1、1-2,则站点0、站点2可达,记作0-2;s[i][j]=1表示i-j可达,反之s[i][j]=0表示i-j不可达;s[i][j]与s[j][i]取值相同;现用二维数组表示N个站点可达关系,请计算快递员至少从几个站点出发,才能到达所有站点?

实现

N = int(input("请输入站点个数:"))
s = []

for i in range(0, N): 
    
    row = []
    
    for j in range(0, N):
        
        if i == j:
            row.append(1)
        
        if i < j:
            print(f"{i}-{j}站点的可达性数值")
            element = int(input("请输入0或1:"))
            row.append(element)
        
        if i > j:
            row.append(s[j][i])
    
    s.append(row)

print(s)

# 待出发节点数 = 总节点数 - 最少连线数量
# 例如10个站点,7个站点连通(至少6根线)、2个站点能连通(至少1根)、1个站点单独,10-6-1-0=3
# 遍历二维数组s,查看对角线以上、为1的元素的个数
num = 0

for i in range(0, N): 
    for j in range(0, N): 
        if i < j:
            if s[i][j] == 1:
                num = num + 1

print(f"至少从{N-num}个节点出发")
# 站点:0 1 2 3
# 2与0、1、3连通,0、1、3互不直通

请输入站点个数:4
0-1站点的可达性数值
请输入0或1:0      
0-2站点的可达性数值
请输入0或1:1      
0-3站点的可达性数值
请输入0或1:0
1-2站点的可达性数值
请输入0或1:1
1-3站点的可达性数值
请输入0或1:0
2-3站点的可达性数值
请输入0或1:1
[[1, 0, 1, 0], [0, 1, 1, 0], [1, 1, 1, 1], [0, 0, 1, 1]]
至少从1个节点出发

http://www.kler.cn/a/517419.html

相关文章:

  • 概率密度函数(PDF)分布函数(CDF)——直方图累积直方图——直方图规定化的数学基础
  • 几种不常用的 MyBatis 写法
  • 有关ORM
  • 438. 找到字符串中所有字母异位词
  • React 中hooks之 React useCallback使用方法总结
  • MVCC底层原理实现
  • Oracle 创建用户和表空间
  • 第15章 监控任务的生命周期(Java高并发编程详解:多线程与系统设计)
  • Servlet 详解
  • EMC常用器件选型(一)
  • 提示词的艺术 ---- AI Prompt 进阶(提示词框架)
  • 三、双链表
  • 算法基础 -- Trie压缩树原理
  • 浏览器hid 和蓝牙bluetooth技术区别
  • WPF 打印功能实现
  • LPDDR4 precharge和selfresh 详解
  • .NET9增强OpenAPI规范,不再内置swagger
  • 经典卷积网络算法-VGG16
  • SpringAI基于Ollama调用通义千问
  • Web3 的核心理念:去中心化如何重塑互联网
  • 不只是mini-react第二节:实现最简fiber
  • 状态模式
  • OpenAI模块重构
  • 43 继承
  • 【统计的思想】假设检验(二)
  • 对神经网络基础的理解