难度:简单
给你一个下标从 0 开始的二维整数矩阵
grid
,大小为n * n
,其中的值在[1, n2]
范围内。除了a
出现 两次,b
缺失 之外,每个整数都 恰好出现一次 。任务是找出重复的数字
a
和缺失的数字b
。返回一个下标从 0 开始、长度为
2
的整数数组ans
,其中ans[0]
等于a
,ans[1]
等于b
。
示例 1:
输入:grid = [[1,3],[2,2]] 输出:[2,4] 解释:数字 2 重复,数字 4 缺失,所以答案是 [2,4] 。
示例 2:
输入:grid = [[9,1,7],[8,9,2],[3,4,6]] 输出:[9,5] 解释:数字 9 重复,数字 5 缺失,所以答案是 [9,5] 。
提示:
2 <= n == grid.length == grid[i].length <= 50
1 <= grid[i][j] <= n * n
- 对于所有满足
1 <= x <= n * n
的x
,恰好存在一个x
与矩阵中的任何成员都不相等。- 对于所有满足
1 <= x <= n * n
的x
,恰好存在一个x
与矩阵中的两个成员相等。- 除上述的两个之外,对于所有满足
1 <= x <= n * n
的x
,都恰好存在一对i, j
满足0 <= i, j <= n - 1
且grid[i][j] == x
。题解:
class Solution: def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]: rep = 0 ## 重复元素 miss = 0 ## 缺失元素 res = [] l = [] for i in grid: for j in i: res.append(j) # print(res) ## 所有元素的列表 n = len(res) for s in range(1,n+1): l.append(s) if res.count(s) > 1: rep = s ## 找到重复元素 for k in l: if k not in res: miss = k ## 找到缺失元素 return [rep,miss]