Sponsored
Sponsored
This approach uses the formula for the sum of the first n natural numbers: Sum = n * (n + 1) / 2. By calculating the sum of the numbers from the array and subtracting it from the expected sum, we can find the missing number.
Time Complexity: O(n), where n is the length of the array.
Space Complexity: O(1), as no additional space is used beyond variables.
1class Solution:
2 def missingNumber(self, nums):
3 n = len(nums)
4 total = n * (n + 1) // 2
5 return total - sum(nums)
6
7# Usage
8nums = [3, 0, 1]
9sol = Solution()
10print(f"Missing number: {sol.missingNumber(nums)}")This Python solution calculates the expected total using n * (n + 1) // 2 and uses the built-in sum() function to find the sum of the array. The missing number is found by subtracting these sums.
An efficient approach is using XOR. XORing a number with itself results in zero (n ^ n = 0), and XOR of any number with zero keeps the number unchanged (n ^ 0 = n). By XORing all indices and array elements together, each number present in both will cancel out, leaving the missing number.
Time Complexity: O(n), iterating through the array.
Space Complexity: O(1), using constant space.
1#include <iostream>
#include <vector>
using namespace std;
int missingNumber(vector<int>& nums) {
int xor_result = 0;
for (int i = 0; i < nums.size(); i++) {
xor_result ^= i ^ nums[i];
}
xor_result ^= nums.size();
return xor_result;
}
int main() {
vector<int> nums = {3, 0, 1};
cout << "Missing number: " << missingNumber(nums) << endl;
return 0;
}C++ implementation uses the XOR approach to effectively determine the missing value in constant space and linear time.