Try   HackMD

2352.Equal Row and Column Pairs

tags: Medium,Array,Hash Table,Matrix,Simulation

2352. Equal Row and Column Pairs

題目描述

Given a 0-indexed n x n integer matrix grid, return the number of pairs (ri, cj) such that row ri and column cj are equal.

A row and column pair is considered equal if they contain the same elements in the same order (i.e., an equal array).

範例

Example 1:

Input: grid = [[3,2,1],[1,7,6],[2,7,7]]
Output: 1
Explanation: There is 1 equal row and column pair:
- (Row 2, Column 1): [2,7,7]

Example 2:

Input: grid = [[3,1,2,2],[1,4,4,5],[2,4,2,2],[2,4,2,2]]
Output: 3
Explanation: There are 3 equal row and column pairs:
- (Row 0, Column 0): [3,1,2,2]
- (Row 2, Column 2): [2,4,2,2]
- (Row 3, Column 2): [2,4,2,2]

Constraints:

  • n == grid.length == grid[i].length
  • 1 <= n <= 200
  • 1 <= grid[i][j] <= 105

解答

Python

class Solution: def equalPairs(self, grid: List[List[int]]) -> int: d = defaultdict(int) ans = 0 for row in grid: d[str(row)] += 1 for col in map(list, zip(*grid)): ans += d[str(col)] return ans

Yen-Chi ChenWed, Jun 14, 2023

TypeScript

function equalPairs(grid: number[][]): number { const n = grid.length; const rows = new Map<string, number>(); const cols = new Map<string, number>(); for (let i = 0; i < n; i++) { const row = grid[i].join(','); const col = grid.map((row) => row[i]).join(','); rows.set(row, (rows.get(row) || 0) + 1); cols.set(col, (cols.get(col) || 0) + 1); } let count = 0; for (const [key, value] of rows.entries()) { count += value * (cols.get(key) || 0); } return count; }

SheepWed, Jun 14, 2023

C#

public class Solution { public int EqualPairs(int[][] grid) { int n = grid.Length; var dic = new Dictionary<string, int>(); for (int i = 0; i < n; i++) { string key = string.Join('-', grid[i]); dic.TryGetValue(key, out int count); dic[key] = count + 1; } int total = 0; for (int j = 0; j < n; j++) { string key = string.Join('-', grid.Select(row => row[j])); if (dic.TryGetValue(key, out int count)) { total += count; } } return total; } }

JimJun 14, 2023

Reference

回到題目列表