LeetCode每日一题_3128. 直角三角形

解题思路:

可以先统计每一行和每一列的 1 的个数,记录在数组 rows 和 cols 中。

然后我们枚举每一个 1,假设当前 1 在第 i 行第 j 列,那么以当前 1 为直角三角形的直角点,另外两个直角点分别在第 i 行和第 j 列,那么直角三角形的个数就是 (rows[i]−1)×(cols[j]−1),累加到答案中即可。

java 复制代码
class Solution {
    public long numberOfRightTriangles(int[][] grid) {
        //如果
        int r =grid.length;
        int c =grid[0].length;
        int[] rows = new int[r];
        int[] columns = new int[c];
        for(int i=0;i<r;i++){
            for(int j=0;j<c;j++){
                if(grid[i][j]==1){
                    rows[i]++;
                    columns[j]++;
                }
            }
        }
        long count = 0;//注意如果不使用long型,在遇到大的数字时正数会变成负数。
        for(int i=0;i<r;i++){
            for(int j=0;j<c;j++){
                if(grid[i][j]==1&&(rows[i]>=1)&&(columns[j]>=1)){

                    count+=(long)(rows[i]-1)*(columns[j]-1);
                }
               
            }
        }
        return count;
    }
}
相关推荐
Fuly102413 分钟前
大模型剪枝(Pruning)技术简介
算法·机器学习·剪枝
Xの哲學19 分钟前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算
bubiyoushang88822 分钟前
二维地质模型的表面重力值和重力异常计算
算法
仙俊红1 小时前
LeetCode322零钱兑换
算法
颖风船1 小时前
锂电池SOC估计的一种算法(改进无迹卡尔曼滤波)
python·算法·信号处理
551只玄猫1 小时前
KNN算法基础 机器学习基础1 python人工智能
人工智能·python·算法·机器学习·机器学习算法·knn·knn算法
charliejohn1 小时前
计算机考研 408 数据结构 哈夫曼
数据结构·考研·算法
POLITE31 小时前
Leetcode 41.缺失的第一个正数 JavaScript (Day 7)
javascript·算法·leetcode