class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
n = len(grid)
double = missing = 0
for num in range(1, n * n + 1):
cnt = 0
for i in range(n):
for j in range(n):
if num == grid[i][j]:
cnt += 1
if cnt == 2:
double = num
elif cnt == 0:
missing = num
return [double, missing]class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
N = len(grid)
count = defaultdict(int)
for i in range(N):
for j in range(N):
count[grid[i][j]] += 1
double = missing = 0
for num in range(1, N * N + 1):
if count[num] == 0:
missing = num
if count[num] == 2:
double = num
return [double, missing]class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
N = len(grid)
seen = set()
double = missing = 0
for i in range(N):
for j in range(N):
if grid[i][j] in seen:
double = grid[i][j]
seen.add(grid[i][j])
for num in range(1, N * N + 1):
if num not in seen:
missing = num
break
return [double, missing]class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
N = len(grid)
gridSum = 0
gridSqSum = 0
for i in range(N):
for j in range(N):
gridSum += grid[i][j]
gridSqSum += grid[i][j] * grid[i][j]
totSum = (N * N * (N * N + 1)) // 2
diff = gridSum - totSum # a - b
totSqSum = (N * N * (N * N + 1) * (2 * N * N + 1)) // 6
sqDiff = gridSqSum - totSqSum # (a^2) - (b^2)
sum = sqDiff // diff # a + b
a = (sum + diff) // 2
b = sum - a
return [a, b]