3227. Find Missing And Repeated Values¶
Difficulty: Easy
LeetCode Problem View on GitHub
3227. Find Missing and Repeated Values
Easy
You are given a 0-indexed 2D integer matrix grid of size n * n with values in the range [1, n2]. Each integer appears exactly once except a which appears twice and b which is missing. The task is to find the repeating and missing numbers a and b.
Return a 0-indexed integer array ans of size 2 where ans[0] equals to a and ans[1] equals to b.
Example 1:
Input: grid = [[1,3],[2,2]] Output: [2,4] Explanation: Number 2 is repeated and number 4 is missing so the answer is [2,4].
Example 2:
Input: grid = [[9,1,7],[8,9,2],[3,4,6]] Output: [9,5] Explanation: Number 9 is repeated and number 5 is missing so the answer is [9,5].
Constraints:
2 <= n == grid.length == grid[i].length <= 501 <= grid[i][j] <= n * n- For all
xthat1 <= x <= n * nthere is exactly onexthat is not equal to any of the grid members. - For all
xthat1 <= x <= n * nthere is exactly onexthat is equal to exactly two of the grid members. - For all
xthat1 <= x <= n * nexcept two of them there is exatly one pair ofi, jthat0 <= i, j <= n - 1andgrid[i][j] == x.
Solution¶
class Solution {
public int[] findMissingAndRepeatedValues(int[][] grid) {
int n = grid.length;
int m = grid[0].length;
int freq[] = new int[n * n + 1];
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
freq[grid[i][j]]++;
}
}
int rep = -1, miss = -1;
for(int i = 1; i <= n * n; i++) {
if(freq[i] == 0) miss = i;
if(freq[i] == 2) rep = i;
}
int ans[] = new int[2];
ans[0] = rep;
ans[1] = miss;
return ans;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here