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

【力扣】3128. 直角三角形 JAVA

一、题目描述

给你一个二维 boolean 矩阵 grid 。
请你返回使用 grid 中的 3 个元素可以构建的 直角三角形 数目,且满足 3 个元素值 都 为 1 。
注意:
如果 grid 中 3 个元素满足:一个元素与另一个元素在 同一行,同时与第三个元素在 同一列 ,那么这 3 个元素称为一个 直角三角形 。这 3 个元素互相之间不需要相邻。

  • 示例 1:
    0 1 0
    0 1 1
    0 1 0
    输入:grid = [[0,1,0],[0,1,1],[0,1,0]]
    输出:2
    解释:
    有 2 个直角三角形。

  • 示例 2:
    1 0 0 0
    0 1 0 1
    1 0 0 0
    输入:grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]
    输出:0
    解释:
    没有直角三角形。

  • 示例 3:
    1 0 1
    1 0 0
    1 0 0
    输入:grid = [[1,0,1],[1,0,0],[1,0,0]]
    输出:2
    解释:
    有两个直角三角形。

二、解题思路

/***  解题思路:*  1、因为要找直角三角形,也就是说我们要找直角的顶点,也就是数组的交点为1*  2、先判断交点为1,然后找到交点为1所在的行的1的个数,然后再找到交点为1所在的列的1的个数*  3、解决第2步的问题,我们可以将二维数组的行和列抽取出来成为两个一维数组*  4、最后将每一行1的个数减去1 乘以 每一列1个数减1 最终得到结果(这个减去的1就是交点位置的1)*/

三、示例代码

public static long numberOfRightTriangles(int[][] grid) {//结果long sum = 0;//行数int m = grid.length;//列数int n = grid[0].length;//一维数组行int[] row = new int[m];//一维数组列int[] col = new int[n];for (int i = 0; i < m; i ++) {for (int j = 0; j < n; j ++) {//每行的j个数字相加,和为几,就代表每行有几个1row[i] += grid[i][j];//每列的i个数字相加,和为几,就代表每列有几个1col[j] += grid[i][j];}}for (int i = 0; i < m; i ++) {for (int j = 0; j < n; j ++) {//判断交点为1if (grid[i][j] == 1) {//将每一行1的个数减去1 乘以 每一列1个数减1 最终得到结果sum += (row[i] - 1) * (col[j] - 1);}}}return sum;}public static void main(String[] args) {int[][] grid = {{0,1,0},{0,1,1},{0,1,0}};System.out.println(numberOfRightTriangles(grid));}

相关文章:

【力扣】3128. 直角三角形 JAVA

一、题目描述 给你一个二维 boolean 矩阵 grid 。 请你返回使用 grid 中的 3 个元素可以构建的 直角三角形 数目&#xff0c;且满足 3 个元素值 都 为 1 。 注意&#xff1a; 如果 grid 中 3 个元素满足&#xff1a;一个元素与另一个元素在 同一行&#xff0c;同时与第三个元素…...

如何全面提升企业安全意识

引言 在当今数字化和信息化的时代&#xff0c;网络安全已成为企业运营不可忽视的核心问题。员工的安全意识直接关系到企业的数据安全和整体网络防护能力。即使企业采用了先进的安全技术&#xff0c;如果员工缺乏足够的安全意识&#xff0c;仍然容易成为攻击者的突破口。本文将…...

全球支持与无界服务:跨越地域的数据采集与分析

在当今企业运营中&#xff0c;IT 监控系统的全球支持和无界服务变得至关重要。随着企业业务的全球化扩展&#xff0c;传统的监控工具往往因地域限制而无法满足全球统一监控的需求。观测云通过其全球部署的数据采集点和多语言支持&#xff0c;确保了无论数据产生于何处&#xff…...

Java面试八股之简述spring boot的目录结构

简述spring boot的目录结构 Spring Boot 项目遵循标准的 Maven 或 Gradle 项目布局&#xff0c;并且有一些约定的目录用于组织不同的项目组件。下面是一个典型的 Spring Boot 项目目录结构&#xff1a; src/main/java&#xff1a;包含所有的 Java 源代码&#xff0c;通常按包组…...

python == 与 is区别

刷到一个面试题 python中 与 is 的区别 根据以往的经验&#xff0c;这个问题应该考察的是运算符根据地址 还是值进行比较的 s1 [a] s2 [a] s3 s1 print(s1 s2) # True 值相等 print(s1 s3) # True 值相等 print(s1 is s2) # False 值相等&#xff0c;引用地址不相…...

STM32学习笔记1---LED,蜂鸣器

目录 GPIO LED 蜂鸣器 RCC外设 GPIO外设 总概 操作STM32的GPIO 代码 LED闪烁 LED流水灯 蜂鸣器&#xff01; 连接方式 GPIO GPIO输出&#xff1a;向外驱动控制 GPIO输入&#xff1a;读取&#xff0c;捕获&#xff08;信息&#xff09;&#xff08;控制&#xff09…...

动手学强化学习 第 15 章 模仿学习 训练代码

基于 https://github.com/boyu-ai/Hands-on-RL/blob/main/%E7%AC%AC15%E7%AB%A0-%E6%A8%A1%E4%BB%BF%E5%AD%A6%E4%B9%A0.ipynb 理论 模仿学习 修改了警告和报错 运行环境 Debian GNU/Linux 12 Python 3.9.19 torch 2.0.1 gym 0.26.2 运行代码 #!/usr/bin/env pythonimpor…...

第一阶段面试问题(前半部分)

1. 进程和线程的概念、区别以及什么时候用线程、什么时候用进程&#xff1f; &#xff08;1&#xff09;线程 线程是CPU任务调度的最小单元、是一个轻量级的进程 &#xff08;2&#xff09;进程 进程是操作系统资源分配的最小单元 进程是一个程序动态执行的过程&#xff0c;包…...

《数学教学通讯》是一本怎样的刊物?投稿难吗?

《数学教学通讯》是一本怎样的刊物&#xff1f;投稿难吗&#xff1f; 《数学教学通讯》是一本具有较高学术价值的教育类刊物。它创刊于 1979 年&#xff0c;由西南大学主管&#xff0c;西南大学数学与统计学院、重庆市数学学会主办&#xff0c;出版周期为旬刊。该刊物在国内外…...

<机器学习> K-means

K-means定义 K-means 是一种广泛使用的聚类算法&#xff0c;旨在将数据集中的点分组为 K 个簇&#xff08;cluster&#xff09;&#xff0c;使得每个簇内的点尽可能相似&#xff0c;而不同簇的点尽可能不同。K-means 算法通过迭代的方式&#xff0c;逐步优化簇的分配和簇的中心…...

我们如何优化 Elasticsearch Serverless 中的刷新成本

作者&#xff1a;来自 Elastic Francisco Fernndez Castao, Henning Andersen 最近&#xff0c;我们推出了 Elastic Cloud Serverless 产品&#xff0c;旨在提供在云中运行搜索工作负载的无缝体验。为了推出该产品&#xff0c;我们重新设计了 Elasticsearch&#xff0c;将存储与…...

MySQL半同步复制

1.MySQL主从复制模式 1.1异步复制 异步复制为 MySQL 默认的复制模式&#xff0c;指主库写 binlog、从库 I/O 线程读 binlog 并写入 relaylog、从库 SQL 线程重放事务这三步之间是异步的。 异步复制的主库不需要关心备库的状态&#xff0c;主库不保证事务被传输到从库&#xf…...

[一本通提高数位动态规划]数字游戏:取模数题解

[一本通提高数位动态规划]数字游戏&#xff1a;取模数题解 1前言2问题3状态的设置4数位dp-part1预处理5数位dp-part2利用状态求解6代码7后记 1前言 本文为数字游戏&#xff1a;取模数的题解 需要读者对数位dp有基础的了解&#xff0c;建议先阅读 论数位dp–胎教级教学 B3883 […...

[Day 39] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的安全性分析 區塊鏈技術已經成為現代數字經濟的一個重要組成部分&#xff0c;提供了去中心化、透明和不可篡改的數據存儲與交易系統。然而&#xff0c;隨著區塊鏈技術的廣泛應用&#xff0c;其安全性問題也日益受到關注。本篇文章將詳細探討區塊鏈技術的安全性&#xf…...

OpenStack入门体验

一、云计算概述 1.1什么是云计算 云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求&#xff0c;提供所需的资源&#xff0c;包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上&#xff0c;提供每秒 10万亿次的运算能力…...

预测未来 | MATLAB实现RF随机森林多变量时间序列预测未来-预测新数据

预测未来 | MATLAB实现RF随机森林多变量时间序列预测未来-预测新数据 预测效果 基本介绍 随机森林属于 集成学习 中的 Bagging(Bootstrap AGgregation 的简称) 方法。如果用图来表示他们之间的关系如下: 随机森林是由很多决策树构成的,不同决策树之间没有关联。当我们进行…...

iOS 系统提供的媒体资源选择器(UIImagePickerController)

简介 图片或者视频的选择功能几乎是每个APP必不可少的&#xff0c;UIImagePickerController 是 iOS 系统提供的一个方便的媒体选择器&#xff0c;允许用户从照片库中选择图片或视频&#xff0c;或者使用相机拍摄新照片和视频。 它的页面简单易用&#xff0c;代码稳定可靠&…...

电脑如何扩展硬盘分区?告别空间不足困扰

在数字化时代&#xff0c;电脑硬盘的存储空间显得愈发重要。随着个人文件、应用程序和系统更新的不断累积&#xff0c;原有的硬盘分区可能很快就会被填满。为了解决这个问题&#xff0c;扩展硬盘分区成为了一个非常实用的方法。那么&#xff0c;电脑如何扩展硬盘分区呢&#xf…...

论文阅读:Mammoth: Building math generalist models through hybrid instruction tuning

Mammoth: Building math generalist models through hybrid instruction tuning https://arxiv.org/pdf/2309.05653 MAmmoTH&#xff1a;通过混合指令调优构建数学通才模型 摘要 我们介绍了MAmmoTH&#xff0c;一系列特别为通用数学问题解决而设计的开源大型语言模型&#…...

什么样的双筒式防爆器把煤矿吸引?

什么样的双筒式防爆器把煤矿吸引&#xff1f;要有好的服务和态度&#xff0c;要用心去聆听客户的需求&#xff0c;去解决客户的疑虑&#xff0c;用诚信去赢得客户的信任。 150产品的技术特点 双筒式防爆器采用双罐结构&#xff0c;其水封水位观测直观、能够快速有效排污、操作…...

MQTT通信中的QoS级别详解:SpringBoot如何选择最适合的传输质量?

MQTT通信中的QoS级别详解&#xff1a;SpringBoot如何选择最适合的传输质量&#xff1f; 在物联网和分布式系统架构中&#xff0c;消息传输的可靠性往往直接关系到业务逻辑的正确性。MQTT协议作为轻量级发布/订阅模式的通信标准&#xff0c;其QoS&#xff08;服务质量&#xff0…...

实测才敢推 AI论文工具推荐:2026最新测评与使用体验

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

2026年网络安全报告

2026年网络安全报告 2026年网络安全报告分析了2025年全球网络威胁形势&#xff0c;指出攻击速度和规模加快&#xff0c;人工智能、身份滥用等技术被攻击者整合&#xff0c;同时预测了2026年行业趋势并给出首席信息安全官建议。 网络安全趋势 不止电子邮件&#xff1a;多渠道…...

别再为版本兼容头疼了!手把手教你搞定Matlab R2014b与NI VeriStand的联合仿真环境

别再为版本兼容头疼了&#xff01;手把手教你搞定Matlab R2014b与NI VeriStand的联合仿真环境 在硬件在环&#xff08;HIL&#xff09;测试领域&#xff0c;Matlab与NI VeriStand的联合仿真环境搭建是许多工程师的必经之路。然而&#xff0c;版本兼容性问题常常成为拦路虎&…...

vue-beautiful-chat避坑指南:从安装配置到WebSocket实时通信的全流程解析

Vue2实时聊天组件深度实践&#xff1a;从vue-beautiful-chat配置到WebSocket全链路优化 当我们需要在Vue2项目中快速实现一个专业级聊天界面时&#xff0c;vue-beautiful-chat组件无疑是优雅的解决方案。但许多开发者在集成WebSocket实时通信功能时&#xff0c;常会遇到各种&q…...

Python异常处理最佳实践:从原理到实践

Python异常处理最佳实践&#xff1a;从原理到实践 1. 背景与动机 在Python编程中&#xff0c;异常处理是一个重要的编程实践。良好的异常处理可以使程序更加健壮&#xff0c;提高代码的可维护性和可读性。然而&#xff0c;许多开发者在处理异常时存在一些常见的问题&#xff0c…...

避坑指南:C# ComboBox那些容易踩的坑(SelectedIndexChanged的诡异事件)

C# ComboBox开发避坑实战&#xff1a;SelectedIndexChanged的7个隐秘陷阱与解决方案 下拉框控件ComboBox看似简单&#xff0c;却暗藏诸多让开发者抓狂的"坑"。我曾在一个仓储管理系统中&#xff0c;因为ComboBox的异常行为连续加班三晚——数据绑定时的SelectedInde…...

Trae平台实战:我如何教会一个AI智能体应对动态网页和反爬虫?

Trae平台实战&#xff1a;动态网页抓取与反爬策略的智能应对之道 在数据驱动的商业环境中&#xff0c;网页抓取技术已成为企业获取竞争优势的关键能力。然而&#xff0c;随着网站防护技术的升级&#xff0c;传统爬虫在面对动态加载内容和复杂反爬机制时往往力不从心。本文将分享…...

Ubuntu 20.04 + ROS Noetic 下,3DSystems Touch HID 新版设备(单USB口)保姆级配置避坑指南

Ubuntu 20.04 ROS Noetic 下3DSystems Touch HID新版设备终极配置指南 刚拿到2024年新款3DSystems Touch HID设备的开发者们&#xff0c;是否被网上混杂的老旧教程搞得晕头转向&#xff1f;作为一款专业级力反馈设备&#xff0c;Touch在机器人控制和VR/AR开发中有着不可替代的…...

课堂教学质量综合评分系统

目录 一、项目环境与目录结构 1. 环境要求 2. 推荐目录结构 二、核心类设计&#xff1a;ClassroomScorer 三、关键代码深度解析 1. 基础路径配置 2. 初始化方法&#xff1a;极致灵活的配置 3. 上下文管理器&#xff1a;统一封装 CSV 读取 4. 数据加载&#xff1a;4 类 …...