- Leetcode 3071. Minimum Operations to Write the Letter Y on a Grid
- 1. 解題思路
- 2. 代碼實現
- 題目鏈接:3071. Minimum Operations to Write the Letter Y on a Grid
1. 解題思路
這一題思路上也是比較直接的,就是首先找到這個Y字符,然后統計一下Y字符內外各自的元素的數目,然后考察將其調整為兩個不同的數字所需要改變的數據個數。
對于前者,我們只需給出Y的位置判斷即可,對于后者,我們只需要用總的 n × n n\times n n×n個元素減去原本就滿足條件的元素個數就是需要調整的元素個數。
2. 代碼實現
給出python代碼實現如下:
class Solution:def minimumOperationsToWriteY(self, grid: List[List[int]]) -> int:n = len(grid)def is_inside_y(i, j):if i < n//2:return j == i or i+j == n-1else:return j == n // 2inside = defaultdict(int)outside = defaultdict(int)for i in range(n):for j in range(n):if is_inside_y(i, j):inside[grid[i][j]] += 1else:outside[grid[i][j]] += 1s = n*nreturn min(s-inside[i]-outside[j] if i != j else s+1 for i in range(3) for j in range(3))
提交代碼評測得到:耗時374ms,占用內存16.6MB。