Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing Number #138 #145

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
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
102 changes: 102 additions & 0 deletions Data Structures/Arrays/Missing_Number_in_Array.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# 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.

## Approach :
There are n unique numbers given.

These values add up to ((n * (n + 1)) / 2)

which is the same as adding the first n positive natural numbers together.

This is equivalent to (array sum + missing number).

SUM OF THE FIRST N NUMBERS - SUM OF ARRAY = Missing number.


## 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 sum = 0;
for (int i = 0 ; i < n ; i++)
{
sum += nums[i];
}
// return the difference between the sum and
// the total that is the missing number
return (int)(((n*(n + 1))/2) - sum);
}
}
```

## 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).