給你一個二維 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; } };