Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions Data Structures/Arrays/Missing_Number_in_Array.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Missing Number in an Array

## Problem :
Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array.

## Example 1:
Input: nums = [3,0,1]

Output: 2
### Explanation:
n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.
## Example 2:
Input: nums = [0,1]

Output: 2
### Explanation:
n = 2 since there are 2 numbers, so all numbers are in the range [0,2]. 2 is the missing number in the range since it does not appear in nums.
## Example 3:
Input: nums = [9,6,4,2,3,5,7,0,1]

Output: 8
### Explanation:
n = 9 since there are 9 numbers, so all numbers are in the range [0,9]. 8 is the missing number in the range since it does not appear in nums.

## Constraints:
* n == nums.length
* 1 <= n <= 104
* 0 <= nums[i] <= n
* All the numbers of nums are unique.

## Solution Function in Python :
```python
class Solution(object):
def missingNumber(self, nums):
n=len(nums)
# return the difference between the sum
# and the total that is the missing number
return (n*(n+1)//2)-sum(nums)
```

## Solution Function in C++ :
```cpp
class Solution
{
public:
int missingNumber(vector<int>& nums)
{
int sum = 0;
int n = num.size();
int total = n*(n + 1)/2;
for (auto number : nums)
{
sum += number;
}
// return the difference between the sum and
// the total that is the missing number
return total - sum;
}
};
```

## Solution Function in java :
```java
class Solution
{
public int missingNumber(int[] nums)
{
int n = nums.length;
long totalArraySum = 0;
for (int i = 0 ; i < n ; i++)
{
totalArraySum += nums[i];
}
// return the difference between the sum and
// the total that is the missing number
return (int)(((n * (n + 1)) / 2) - totalArraySum);
}
}
```

## Explanation :
The Nth triangular number, which can be calculated as N * (N + 1) / 2, is the sum of all the numbers from 1 to N.

Therefore, it seems to make sense that we can easily determine the missing number by comparing the Nth triangular number to the total of nums.

## Time Complexity :
Time Complexity is O(n).

## Space Complexity :
Space Complexity is O(1).