3128.直角三角形

mysteryily發表於2024-08-03

給你一個二維 boolean 矩陣 grid

請你返回使用 grid 中的 3 個元素可以構建的 直角三角形 數目,且滿足 3 個元素值 都 為 1 。

注意:

  • 如果 grid 中 3 個元素滿足:一個元素與另一個元素在 同一行,同時與第三個元素在 同一列 ,那麼這 3 個元素稱為一個 直角三角形 。這 3 個元素互相之間不需要相鄰。
  • class Solution {
    public:
        long long numberOfRightTriangles(vector<vector<int>>& grid) {
            int n=grid.size();
            int m=grid[0].size();
            vector<int> row(n);
            vector<int> col(m);
            long long  res=0;
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<m;j++)
                {
                    if(grid[i][j])
                    {
                        row[i]++;
                        col[j]++;
                    } 
                }
            }
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<m;j++)
                {
                    if(grid[i][j])
                    {
                        res=res+(row[i]-1)*(col[j]-1);
                    } 
                }
            }
            return res;
        }
    };