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

每日一题:leetcode 1267 统计参与通信的服务器

这里有一幅服务器分布图,服务器的位置标识在 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

思路:

暴力遍历。。。。(我这种肯定不是最优的)

先按行遍历,如果出现第一个,先记录位置,然后看看有没有第二个的出现。

ac code:

class Solution {public int countServers(int[][] grid) {int ans = 0;int n = grid.length;int m = grid[0].length;boolean[][] vis = new boolean[n][m];for (int i = 0;i<n;i++) {int flag = 0;int firstX = -1;int firstY = -1;for (int j =0;j<m;j++) {if (grid[i][j] == 1) {if (flag > 1) {ans += 1;vis[i][j] = true;} else if (flag == 1) {ans += 2;vis[i][j] = true;vis[firstX][firstY] = true;} else {firstX = i;firstY = j;}flag += 1;}}}for (int i=0;i<m;i++) {int flag = 0;int firstX = -1;int firstY = -1;for (int j=0;j<n;j++) {if (grid[j][i] == 1) {if (flag > 1) {ans += (vis[j][i] ? 0 : 1);vis[j][i] = true;} else if (flag == 1) {ans += (vis[j][i] ? 0 : 1);ans += (vis[firstX][firstY] ? 0 : 1);vis[j][i] = true;vis[firstX][firstY] = true;} else {firstX = j;firstY = i;}flag += 1;}}}return ans;}
}

还有更优的,比如可以通过hashmap去记录行列是否出现,或者是通过一维数组+一个变量去记录,放一个更优的解法。

class Solution:def countServers(self, grid: List[List[int]]) -> int:m,n=len(grid),len(grid[0])col_alone=[-1]*nans=0for i in range(m):row_alone=-1for j in range(n):if grid[i][j]==0:continueif row_alone==-1 and col_alone[j]==-1:##同行同列没有服务器row_alone=jcol_alone[j]=ielse:if row_alone>=0:ans+=1col_alone[row_alone]=-2ans+=(col_alone[j]>=0)+1row_alone=-2col_alone[j]=-2return ans

相关文章:

每日一题:leetcode 1267 统计参与通信的服务器

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

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

排除代码和Resolution and Presentation面板设置问题 如果程序还是不能按照预期的分辨率运行&#xff0c;应该是系统注册表记录了对应的设置。 解决方案&#xff1a; 打开注册表&#xff0c;使用快捷键“Win” "R"组合快捷键。在打开后面键入命令&#xff1a;Rege…...

消息中间件 介绍

MQ简介 MQ,Message queue,消息队列&#xff0c;就是指保存消息的一个容器。具体的定义这里就不类似于数据库、缓存等&#xff0c;用来保存数据的。当然&#xff0c;与数据库、缓存等产品比较&#xff0c;也有自己一些特点&#xff0c;具体的特点后文会做详细的介绍。 现在常用…...

JAVA-字符串长度

给定一行长度不超过 100 的非空字符串&#xff0c;请你求出它的具体长度。 输入格式 输入一行&#xff0c;表示一个字符串。注意字符串中可能包含空格。 输出格式 输出一个整数&#xff0c;表示它的长度。 数据范围 1≤字符串长度≤100 字符串末尾无回车 输入样例&#xff1a; …...

[oneAPI] 基于BERT预训练模型的SWAG问答任务

[oneAPI] 基于BERT预训练模型的SWAG问答任务 基于Intel DevCloud for oneAPI下的Intel Optimization for PyTorch基于BERT预训练模型的SWAG问答任务数据集下载和描述数据集构建问答选择模型训练 结果参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d…...

如何为winform控件注册事件

有很多winform的初学者不知道如何为winform注册的事件代码,本篇博文就是以button控件为例子,为winform注册单击事件,如下: 1、新建一个winform 以visual studio 2019 社区版为例子,新建一个winform程序,如下: 关于visual studio 2019 社区版下载方式点击这里:手把手教…...

【LeetCode-面试经典150题-day15】

目录 104.二叉树的最大深度 100.相同的树 226.翻转二叉树 101.对称二叉树 105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 117.填充每个节点的下一个右侧节点指针Ⅱ 104.二叉树的最大深度 题意&#xff1a; 给定一个二叉树 root &#xff0c;返回其…...

git查看和修改项目远程仓库地址

git查看和修改项目远程仓库地址 一、背景 项目代码仓库迁移&#xff0c;需要本地更新远程仓库地址,进行代码同步与提交。 二、查看项目的远程仓库地址 # 查看远程地址 git remote -v # 查看远程仓库信息&#xff08;分支、地址等&#xff09; git remote show origin三、修…...

JavaWeb 速通JSON

目录 一、JSON快速入门 1.基本介绍 : 2.定义格式 : 3.入门案例 : 二、JSON对象和字符串的相互转换 1.常用方法 : 2.应用实例 : 3.使用细节 : 三、JSON在Java中的使用 1.基本说明 : 2.应用场景 : 2.1 JSON <---> JavaBean 2.2 JSON <---> List 2.3 JSON …...

20 MySQL(下)

文章目录 视图视图是什么定义视图查看视图删除视图视图的作用 事务事务的使用 索引查询索引创建索引删除索引聚集索引和非聚集索引影响 账户管理&#xff08;了解非DBA&#xff09;授予权限 与 账户的相关操作 MySQL的主从配置 视图 视图是什么 通俗的讲&#xff0c;视图就是…...

测试圈的网红工具:Jmeter到底难在哪里?!

雨果的公司最近推出了一款在线购物应用&#xff0c;吸引了大量用户。然而随着用户数量的增加&#xff0c;应用的性能开始出现问题。用户抱怨说购物过程中页面加载缓慢&#xff0c;甚至有时候无法完成订单&#xff0c;小欧作为负责人员迫切需要找到解决方案。 在学习JMeter之前…...

深度学习10:Attention 机制

目录 Attention 的本质是什么 Attention 的3大优点 Attention 的原理 Attention 的 N 种类型 Attention 的本质是什么 Attention&#xff08;注意力&#xff09;机制如果浅层的理解&#xff0c;跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。 Attention…...

简单着色器编写(中下)

这篇我们来介绍另一部分函数。 static unsigned int CreateShader(const std::string& vertexShader, const std::string& fragmentShader) {unsigned int program glCreateProgram();unsigned int vs CompileShader(GL_VERTEX_SHADER,vertexShader);unsigned int f…...

matlab使用教程(24)—常微分方程(ODE)求解器

1.常微分方程 常微分方程 (ODE) 包含与一个自变量 t&#xff08;通常称为时间&#xff09;相关的因变量 y 的一个或多个导数。此处用于表示 y 关于 t 的导数的表示法对于一阶导数为 y ′ &#xff0c;对于二阶导数为 y ′′&#xff0c;依此类推。ODE 的阶数等于 y 在方程中…...

企业级数据共享规模化模式

数据共享正在成为企业数据战略的重要元素。对于公司而言&#xff0c;Amazon Data Exchange 这样的亚马逊云科技服务提供了与其他公司共享增值数据或从这些数据获利的途径。一些企业希望有一个数据共享平台&#xff0c;他们可以在该平台上建立协作和战略方法&#xff0c;在封闭、…...

Web服务器-Tomcat详细原理与实现

Tomcat 安装与使用 &#xff1a;MAC 安装配置使用Tomcat - 掘金 安装后本计算机就相当于一台服务器了&#xff01;&#xff01;&#xff01; 方式一&#xff1a;使用本地安装的Tomcat 1、将项目文件移动到Tomcat的webapps目录下。 2、启动Tomcat 3、在浏览器输入想要加载的…...

ARM处理器核心概述

一、基于ARM处理器的嵌入式系统 ARM核深度嵌入SOC中&#xff0c;通过JTAG口进行外部调试。计通常既有外部内存又有内部内存&#xff0c;从而支持不通的内存宽度、速度和大小。一般会包含一个中断控制器。可能包含一些Primece外设&#xff0c;需要从ARM公司取得授权。总线使用A…...

万户协同办公平台 ezoffice存在未授权访问漏洞 附POC

文章目录 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC1. 万户协同办公平台 ezoffice简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC 免责声明&#xff1a;请勿利用文章内的相…...

使用ctcloss训练矩阵生成目标字符串

首先我们需要明确 c t c l o s s ctcloss ctcloss是用来做什么的。比如说要生成的目标字符串长度为 l l l&#xff0c;而这个字符串包含 s s s个字符&#xff0c;字符串允许的最大长度为 L L L&#xff0c;这里认为一个位置是一个时间步&#xff0c;就是一拍&#xff0c;记为 T…...

驱动 - 20230829

练习 基于platform实现 在根节点下&#xff0c;增加设备树 myplatform {compatible"hqyj,myplatform";interrupts-extended<&gpiof 9 0>, <&gpiof 7 0>, <&gpiof 8 0>;led1-gpio<&gpioe 10 0>;reg<0x12345678 59>;}…...

大麦抢票自动化终极指南:5分钟快速上手教程

大麦抢票自动化终极指南&#xff1a;5分钟快速上手教程 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 您是否曾因热门演唱会门票秒光而遗憾&#x…...

IDC行业专家交流纪要

Q&#xff1a;字节 2026 年 IDC 招标的总需求、国内需求、当前招标进度分别是怎样的&#xff1f;此次招标呈现出怎样的特点&#xff0c;背后又有哪些原因&#xff1f;A&#xff1a;字节跳动 2026 年 IDC 招标整体规划总需求约 1.8GW&#xff0c;剔除海外需求削减的部分后&#…...

dmview.ocx文件丢失找不到 打不开程序 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

SDMatte新手入门:交互式点选,让复杂抠图变简单

SDMatte新手入门&#xff1a;交互式点选&#xff0c;让复杂抠图变简单 1. 什么是SDMatte&#xff1f; SDMatte是一款基于扩散模型的交互式图像抠图工具&#xff0c;由vivoCameraResearch团队开发。它通过简单的点选操作&#xff0c;就能实现专业级的图像抠图效果&#xff0c;…...

一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)

如果你正在做后端开发&#xff0c;或者正在准备找实习/秋招&#xff0c;那你一定绕不开一个关键词&#xff1a;微服务。 而在 Java 技术栈中&#xff0c;微服务的“标配方案”&#xff0c;就是今天的主角——Spring Cloud。 很多同学第一次接触 Spring Cloud 时&#xff0c;都…...

在AutoDL上搞定nuScenes数据集:从解压到mmdetection3d初始化(含避坑指南)

在AutoDL云端高效部署nuScenes数据集&#xff1a;全流程解析与实战避坑指南 nuScenes作为自动驾驶领域最具挑战性的3D感知数据集之一&#xff0c;包含1000个复杂城市场景的多模态数据。但对于刚接触云端GPU服务器的研究者来说&#xff0c;从数据解压到环境配置的每一步都可能遇…...

模型加载与初始化(3)

前言 在 llama.cpp 中&#xff0c;模型推理主要基于 GGUF 格式展开。GGUF 是一种专为存储基于 GGML 及其相关执行器进行推理的模型文件而设计的格式。作为一种二进制格式&#xff0c;其设计初衷在于实现模型的高效加载与保存&#xff0c;并确保良好的易读性。本章将深入探讨大语…...

LeetCode 98. Validate Binary Search Tree 题解

LeetCode 98. Validate Binary Search Tree 题解 题目描述 给你一个二叉树的根节点 root&#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子…...

STorM BGC V1.31硬件 + SimpleBGC源码:从零搭建三轴云台开发环境(含.Net框架避坑)

STorM BGC V1.31硬件 SimpleBGC源码&#xff1a;从零搭建三轴云台开发环境&#xff08;含.Net框架避坑&#xff09; 三轴云台作为稳定控制领域的经典应用&#xff0c;近年来在无人机、摄影设备、工业检测等领域展现出巨大潜力。STorM BGC V1.31硬件平台配合SimpleBGC开源架构&…...

ReflectiveDLLInjection实战:从源码编译到进程注入完整流程

ReflectiveDLLInjection实战&#xff1a;从源码编译到进程注入完整流程 【免费下载链接】ReflectiveDLLInjection Reflective DLL injection is a library injection technique in which the concept of reflective programming is employed to perform the loading of a libra…...