首页 > 其他分享 >【LeetCode1】统计参与通信的服务器

【LeetCode1】统计参与通信的服务器

时间:2023-08-24 18:55:10浏览次数:32  
标签:__ LeetCode1 sum 通信 grid print 服务器

【题目】

  • 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。
  • 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
  • 请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

【示例一】

  • 输入:grid = [[1,0],[0,1]]
  • 输出:0
  • 解释:没有一台服务器能与其他服务器进行通信。

【示例二】

  • 输入:grid = [[1,0],[1,1]]
  • 输出:3
  • 解释:所有这些服务器都至少可以与一台别的服务器进行通信。

【示例三】

  • 输入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]]
  • 输出:4
  • 解释:第一行的两台服务器互相通信,第三列的两台服务器互相通信,但右下角的服务器无法与其他服务器通信。

【提示】

  • m == grid.length
  • n == grid[i].length
  • 1 <= m <= 250
  • 1 <= n <= 250
  • grid[i][j] == 0 or 1

【解答】

【1】精简版

def index(grid):
    for i, r in enumerate(grid):
        if sum(r) > 1:
            grid[i] = [2 if x else 0 for x in r]
    return sum(sum(x > 0 for x in c) for c in zip(*grid) if sum(c) > 1)

if __name__ == '__main__':
    grid = [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
    res = index(grid)
    print(res)
  • 输出结果
4

【2】拆分版

def index(grid):
    # 遍历二维网络的每一行
    for i, r in enumerate(grid):
        # 判断当前行是否有多于1台服务器
        if sum(r) > 1:
            # 如果当前行有多于1台服务器,将该行的所有1替换为2,表示特定行的服务器数量为2
            grid[i] = [2 if x else 0 for x in r]

    print(grid)
    # [[2, 2, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]

    # 汇总满足条件的服务器数量
    count = 0
    # 将二维网络进行转置,即将行转换为列,方便计算列条件
    transposed_grid = zip(*grid)
    # print('transposed_grid', list(transposed_grid))
    # [(2, 0, 0, 0), (2, 0, 0, 0), (0, 1, 1, 0), (0, 0, 0, 1)]

    # 遍历转置后的每一列
    for c in transposed_grid:
        # 判断当前列是否有多于1台服务器
        if sum(c) > 1:
            # 对于满足条件的列,统计大于0的元素数量,即满足条件的服务器数量
            count += sum(x > 0 for x in c)
            print(f'当前列表 {c} 当前 计数 {count}')

    # 返回满足条件的服务器数量
    return count

if __name__ == '__main__':
    grid = [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
    res = index(grid)
    print(res)
  • 输出结果
[[2, 2, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
当前列表 (2, 0, 0, 0) 当前 计数 1
当前列表 (2, 0, 0, 0) 当前 计数 2
当前列表 (0, 1, 1, 0) 当前 计数 4
4

标签:__,LeetCode1,sum,通信,grid,print,服务器
From: https://www.cnblogs.com/dream-ze/p/17654939.html

相关文章

  • 服务器安全
    1,删除特殊的账户和账户组。2,关闭系统不需要的服务。可以选择关闭:anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscdportm......
  • 本地启动可以读取到nacos配置,但是发布到服务器上时获取不到nacos配置
    【问题描述】微服务发布到服务器上时获取不到nacos配置,启动工程报错:Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'ssoConfig':Injectionofautowireddependenciesfailed;nestedexceptionisjava.lang.IllegalAr......
  • 小程序 页面通信
    一、小程序使用npm包1.初始化package.json在当前项目打开命令行,运行npminit必须属性有:name、version,其他属性都可删除2.勾选允许使用npm   在微信开发者工具上,点击详情->本地设置->使用npm模块。 3.下载npm包npminstallpackageName4.构建......
  • 连接远程服务器时,如何使用图形应用?
    终端连接远程服务器时,默认只能执行命令行程序,无法使用GUI程序。这里是解决方法:xorg-HowtoforwardXoverSSHtorungraphicsapplicationsremotely?-Unix&LinuxStackExchangeopen3d通过vscode+ssh连接远程服务器将可视化界面本地显示-CSDNTL;DR:Yourcl......
  • 华为ENSP学习之设置VLAN间通信
    1、同交换机vlan间通信拓扑图如下:同交换机vlan间通信的关键:为每个vlan设置ip地址步骤:配置pc1和pc2的ip地址配置lsw1的vlan100和200设置vlan100和200的ip地址配置pc1和pc2的网关地址为vlan100和200的ip地址配置lsw1的g0/0/1和g0/0/2端口的连接类型和所属vlan交换......
  • 国标视频云服务EasyGBS国标视频平台迁移服务器后无法启动的问题解决方法
    国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格......
  • linux服务器docker compose的使用步骤
    之前说了docker的安装,dockercompose的安装,还比较了dockerfile和dockercompose的区别,那么dockercompose的实际应用是怎么样呢?记录下我的实操步骤1、服务器上新建目录,目录情况如下,我的data目录是挂载到数据盘的/data/docker_config/nginx//存放nginx的配置文件/dat......
  • python rasa聊天机器人教程六:服务器部署
    1.准备环境:宝塔+nginx+docker首先在服务器上安装好宝塔,然后在宝塔里面安装nginx+docker2.创建站点宝塔站点里面创建一个站点 3.上传rasa项目的代码到站点目录把之前在本地运行正常的rasa项目代码上传到服务器站点目录上4.修改index.html代码修改站点目录下/www/wwwroo......
  • 对话无服务器专家 Luca Mezzalira:你真的为 Serverless × AI 做好准备了吗?
    无服务器架构是当下云计算领域最热门的趋势之一。据统计,只有35%的技术人员还没有使用无服务器平台,越来越多的企业出于降低成本、简化运维、加快产品上市速度等原因选择转向无服务器架构。那么,开发人员该如何转变自己的开发方式以适应和充分利用无服务器架构,在业务快速变化的情况......
  • 静态Web服务器-以⾯向对象的模式开发
    步骤1.把提供服务的Web服务器抽象成⼀个类(HTTPWebServer)2.提供Web服务器的初始化⽅法,在初始化⽅法⾥⾯创建socket对象3.提供⼀个启动Web服务器的⽅法,让Web服务器处理客户端请求操作。 示例1importsocket2importthreading34#获取用户请求资源的路径5......