diff --git a/Algorithms/Easy/645_SetMismatch/Solution.cpp b/Algorithms/Easy/645_SetMismatch/Solution.cpp new file mode 100644 index 0000000..4debef3 --- /dev/null +++ b/Algorithms/Easy/645_SetMismatch/Solution.cpp @@ -0,0 +1,22 @@ +class Solution { +public: + vector findErrorNums(vector& nums) { + int n = nums.size(), sumXor = 0; + int mark[n + 1]; + memset(mark, 0, sizeof(mark)); + vector ans; + + for (int i = 0; i < n; i++) { + sumXor ^= nums[i] ^ (i + 1); + + if (mark[nums[i]] == 1) { + ans.push_back(nums[i]); + } + + mark[nums[i]]++; + } + + ans.push_back(sumXor ^ ans[0]); + return ans; + } +}; \ No newline at end of file diff --git a/Algorithms/Easy/645_SetMismatch/Solution.java b/Algorithms/Easy/645_SetMismatch/Solution.java new file mode 100644 index 0000000..6e20f13 --- /dev/null +++ b/Algorithms/Easy/645_SetMismatch/Solution.java @@ -0,0 +1,20 @@ +class Solution { + public int[] findErrorNums(int[] nums) { + int n = nums.length, sumXor = 0; + int mark[] = new int[n + 1]; + int ans[] = new int[2]; + + for (int i = 0; i < n; i++) { + sumXor ^= nums[i] ^ (i + 1); + + if (mark[nums[i]] == 1) { + ans[0] = nums[i]; + } + + mark[nums[i]]++; + } + + ans[1] = sumXor ^ ans[0]; + return ans; + } +} \ No newline at end of file