洛阳做网站公司汉狮价格,教师在哪些网站可以做兼职,华为云云速建站怎样,2023年最新科技新闻摘抄LeetCode
找出缺失的重复数字
题目链接#xff1a;2965. 找出缺失和重复的数字 - 力扣#xff08;LeetCode#xff09;
题目描述
给你一个下标从 0 开始的二维整数矩阵 grid#xff0c;大小为 n * n #xff0c;其中的值在 [1, n2] 范围内。除了 a 出现 两次#xff…LeetCode
找出缺失的重复数字
题目链接2965. 找出缺失和重复的数字 - 力扣LeetCode
题目描述
给你一个下标从 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 501 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 。
思路
用数组统计每个数出现的次数寻找出现两次的数和出现零次的数
代码
C
class Solution {
public:vectorint findMissingAndRepeatedValues(vectorvectorint grid) {int n grid.size();vectorint cnt(n * n 1);for (auto row : grid) {for (int x : row) {cnt[x];}}vectorint ans(2);for (int i 1; i n * n; i) {if (cnt[i] 2) {ans[0] i; // 出现两次的数} else if (cnt[i] 0) {ans[1] i; // 出现零次的数}}return ans;}
};Java
public class Solution {public int[] findMissingAndRepeatedValues(int[][] grid) {int n grid.length;int[] cnt new int[n * n 1];for (int[] row : grid) {for (int x : row) {cnt[x];}}int[] ans new int[2];for (int i 1; i n * n; i) {if (cnt[i] 2) {ans[0] i; } else if (cnt[i] 0) {ans[1] i; }}return ans;}
}