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

力扣3128. 直角三角形

力扣3128. 直角三角形

题目解析及思路

题目要求找到矩阵中的直角三角形,不必相邻

套路:三个点**枚举(中间)**直角顶点更容易计算

对于(i,j)的直角顶点,构成直角三角形有多少个?

设第 i 行有 rowSum 个 1,第 j 列有 colSum 个 1。根据乘法原理,直角顶点为 (i,j) 的「直角三角形」有

(rowSum−1)⋅(colSum−1)

那么也就是说我们要求出rowSum和colSum,再通过乘法原理计算答案即可

实现见代码

代码

class Solution {
public:long long numberOfRightTriangles(vector<vector<int>>& grid) {//n为列数int n = grid[0].size();//提前-1vector<int> col_sum(n,-1);for(auto &row : grid)//遍历每一列 再对应列+=row[j]for(int j=0;j<n;j++)col_sum[j] += row[j];long long ans = 0;for(auto &row : grid){//reduce求和,同样提前-1int row_sum = reduce(row.begin(), row.end()) - 1;for(int j=0;j<n;j++)//枚举当前点作为直角顶点if(row[j] == 1)ans += row_sum * col_sum[j];}return ans;}
};

http://www.mrgr.cn/news/47228.html

相关文章:

  • 学习模板之一
  • CentOS安装Git
  • Redis有哪些常用应用场景?
  • std::vector
  • js基础---座位选择案例分析
  • 大模型(LLM)面试全解:主流架构、训练目标、涌现能力全面解析
  • 简单的maven nexus私服学习
  • 【深度学习 | 基础部分】深度学习导论
  • numpy的使用
  • Canal、SpringBoot、Kafka实战
  • 短效IP池子质量怎么判断?
  • 实际开发中,java开发的准备工作
  • 使用UDP网络型灯光协议控制器控制DMX512步进电机
  • 使用API有效率地管理Dynadot域名,设置域名服务器(NS)的ip信息
  • C# DotNetty客户端,包含心跳发送,断线重连机制
  • 企业大文件传输之:镭速如何提升上传文件浏览器压缩效率?
  • Metasploit渗透测试之MSFvenom
  • QWidget 样式不生效问题
  • uniApp中小程序中版本更新
  • Excel多级结构转成树结构形式
  • JavaScript 数组操作指南
  • HT366 具有防破音功能的免电感滤波2x20W D类立体声音频功放
  • Jax(Random、Numpy)常用函数
  • 求图的各结点的入度个数
  • unity 调整skinweight (皮肤权重),解决:衣服穿模问题
  • vector(2)