算法---统计参与通信的服务器

news2024/11/18 12:28:35

题目

这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。

如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。

请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

示例 1:

在这里插入图片描述

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

在这里插入图片描述

输入:grid = [[1,0],[1,1]]
输出:3
解释:所有这些服务器都至少可以与一台别的服务器进行通信。
示例 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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-servers-that-communicate
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解决方法

    fun countServers(grid: Array<IntArray>): Int {
        val row = IntArray(grid.size) { 0 }
        val colum = IntArray(grid[0].size) { 0 }

        grid.forEachIndexed { y, ints ->
            ints.forEachIndexed { x, i ->
                if (grid[y][x] == 1){
                    row[y]++
                    colum[x]++
                }
            }
        }

        var result = 0
        grid.forEachIndexed { y, ints ->
            ints.forEachIndexed { x, i ->
                if (grid[y][x] == 1 && (row[y] > 1 || colum[x] > 1)){
                    result++
                }
            }
        }
        return result
    }

总结

1.思路清晰就好办了
2.人生舞台的大幕随时都可能拉开,关键是你愿意表演,还是选择躲避。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】调试工具GDB简述

一、说明 GDB&#xff08;GNU Debugger&#xff09;是UNIX及UNIX-like下的强大调试工具&#xff0c;可以调试ada, c, c, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。本文介绍GDB启动调试的方式。 二、Ubuntu上安装gdb。 在root用户权限下&#xff1a; roo…

【通过蓝牙滚动文本和Android控制】

【通过蓝牙滚动文本和Android控制】 1. 概述2. MAX72193. 电路原理图4. MAX7219基本Arduino代码5. 88 LED矩阵滚动Arduino代码6. 用于通过蓝牙控制 88 LED 矩阵的安卓应用程序1. 概述 我们将做三个例子,第一个例子我们将解释MAX7219的基本工作原理,在第二个例子中,我们将看…

scala控制抽象之传名参数(名调用)

我们在用scala定义函数时&#xff0c;一般参数都是各种类型的值&#xff0c;这是常见的值调用 但偶尔也有需要把代码块作为参数传入的情况&#xff08;名调用&#xff09; 匿名函数经常可以作为函数的参数传入&#xff0c;非匿名函数也行&#xff08;函数作为返回值返回就更常见…

都说软件测试不行了,真的是这样吗?

最近在各大平台经常会听到大家说这样的话&#xff1a; 现在公司都不招人&#xff0c;测试员根本找不到工作 简历石沉大海、面试机会也没有&#xff0c;软件测试是不是不行了 软件测试行情到底如何&#xff1f; 作为软件员在如今的情况下又该怎么做&#xff1f; 其实现在所…

ai生成文章 免费-自动生成文章

原创文章自动生成器 随着人工智能技术的快速发展&#xff0c;越来越多的创新产品得以应用到我们的日常工作中。其中&#xff0c;原创文章自动生成器是一种高效、智能的工具&#xff0c;它可以帮助企业快速生成符合要求的优质文章。在本文中&#xff0c;我将向您介绍原创文章自…

数据结构算法leetcode刷题练习(1)

给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 1 的两个结点。也就是说&#xff0c;如果正位于当前行的下标 i &#xff0c;那么下一…

4.2 插值多项式的求法

学习目标&#xff1a; 我会采取以下几个步骤来学习插值多项式的求法&#xff1a; 学习预备知识&#xff1a;插值多项式的求法需要掌握一定的数学知识&#xff0c;例如多项式函数的定义、导数、微积分、线性代数等等。因此&#xff0c;学习插值多项式的求法前&#xff0c;需要先…

掘金AIGC时代,开发者更需要什么样的大模型?

当前&#xff0c;火热的AI大模型领域需要一些冷思考。 自去年年底ChatGPT掀起一轮AIGC热潮以来&#xff0c;国内科技企业扎堆发布大模型和类ChatGPT产品。截止2023年4月&#xff0c;已公开宣布发布或即将发布AI大模型的企业达数十家。多模态大模型的能力不断迭代&#xff0c;市…

2023年自动化测试真有那么重要吗?内卷严重,测试技能水涨船高......

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 学习自动化测试有…

应用现代化语境下的技术重塑:谁在帮助企业自我革命?

文丨智能相对论 作者丨沈浪 在数字经济时代&#xff0c;应用现代化正在成为一个共识。在IDC发布的《IDC FutureScape&#xff1a;全球云计算2022年预测-中国启示》报告中&#xff0c;应用现代化就位居首位。同时&#xff0c;IDC也预测&#xff0c;到2025年&#xff0c;数字经…

更新 WinForms | InitializeComponent 的现代代码生成

当你使用 Visual Studio 中的 WinForms Designer 来创建一个 WinForms 表单或用户控件时&#xff0c;它并没有像 XML 或 HTML 那样的特殊定义或文件格式来表示用户界面。从一开始&#xff0c;WinForms 使用的唯一格式就是程序代码。在 WinForms Visual Basic 项目中定义的表单或…

ONES 联合中国信通院发布《中国企业软件研发管理白皮书》

4月20日&#xff0c;由 ONES 与中国信通院联合发起的《中国企业软件研发管理白皮书》发布会暨「软件质效沙龙一北京站」正式举行。发布会上&#xff0c;ONES 与中国信通院云计算与大数据研究所的各位领导、行业专家及众多软件从业者一起&#xff0c;聚焦研发管理热点动态&#…

【hello C++】内存管理

目录 前言&#xff1a; 1. C/C内存分布 2. C语言动态内存管理方式 3. C内存管理方式 3.1 new / delete 操作内置类型 3.2 new和delete操作自定义类型 4. operator new与operator delete函数 4.1 operator new与operator delete函数 5. new和delete的实现原理 5.1 内置类型 5.2…

杭州乐芯CNC 机器人采集方法汇总

杭州乐芯CNC数据采集方法及支持的系统 一&#xff0c;杭州乐芯CNC 机器人采集方法汇总 1&#xff0c;采用SDK开发包采集&#xff0c;比如发那科 FANUC \三菱 、海德汉、大隈OKUMA&#xff08;O-API&#xff09;、华中数控、凯恩帝、沙迪克、牧野电火花、台湾宝元、上海来钠克…

怎么把avi文件转换成mp4视频格式,4个高能方法

怎么把avi文件转换成mp4视频格式&#xff1f; 当您下载到avi格式的视频文件时&#xff0c;您可能会选择将其转换为MP4格式的文件。 avi是一种由微软开发的多媒体容器格式&#xff0c;尽管现在已经被认为是老旧的技术&#xff0c;但由于其简单易懂的开发API和Windows的通用性&am…

【CSS3】CSS3 2D 转换 - rotate 旋转 ② ( 使用 rotate 旋转绘制三角形 )

文章目录 一、使用 rotate 旋转绘制三角形二、代码示例 一、使用 rotate 旋转绘制三角形 使用 rotate 旋转绘制三角形 的原理 : 先绘制正方形 , 为该正方形设置边框 , 只设置 右侧 和 下方的 边框 , div {width: 40px;height: 40px;border-right: 2px solid black;border-bott…

tmux---linux终端复用器使用

tmux---linux终端复用器使用 tmux 介绍安装使用tmux会话管理新建会话分离会话接入会话杀死会话切换会话重命名会话 窗格操作划分窗格移动光标交换窗格位置窗格快捷键 tmux 介绍 命令行的典型使用方式是&#xff0c;打开一个终端窗口&#xff08;terminal window&#xff0c;以…

发令枪音效芯片,语音提示ic

发令枪属于管制物品&#xff0c;只能在运动员训练或比赛时使用&#xff0c;其余时间段不能使用&#xff0c;更不能在非比赛场地公众场合使用。在径赛、游泳比赛等开始时&#xff0c;主要是用来发出声音信号的器械&#xff0c;形状像手枪。 电子发令枪&#xff0c;采用电子元器…

Baklib最佳实践:如何设计符合用户需求的FAQ页面?

在当今互联网时代&#xff0c;随着信息量的不断增加和用户信息获取方式的多样化&#xff0c;越来越多的公司、组织和个人开始创建自己的FAQ页面。作为一个企业或组织的“门面”&#xff0c;FAQ页面对于提升品牌形象、提高服务质量以及吸引潜在客户等方面都起着至关重要的作用。…

传统机器学习(三)聚类算法K-means(一)

传统机器学习(三)聚类算法K-means(一) 一、聚类算法K-means初识 1.1 算法概述 K-Means算法是无监督的聚类算法&#xff0c;它实现起来比较简单&#xff0c;聚类效果也不错&#xff0c;因此应用很广泛。K-Means基于欧式距离认为两个目标距离越近&#xff0c;相似度越大。 1.…