- Related Questions & Answers
- Program to find duplicate element from n+1 numbers ranging from 1 to n in Python
- Find four missing numbers in an array containing elements from 1 to N in Python
- Find four missing numbers in an array containing elements from 1 to N in C++
- Compute sum of digits in all numbers from 1 to n
- Program to find all upside down numbers of length n in Python
- Python program to count total set bits in all number from 1 to n.
- Find count of Almost Prime numbers from 1 to N in C++
- C Program to print numbers from 1 to N without using semicolon
- Smallest possible number divisible by all numbers from 1 to n in JavaScript
- Program to find sum of prime numbers between 1 to n in C++
- Program to find kth lexicographic sequence from 1 to n of size k Python
- How to find the missing number in a given Array from number 1 to n in Java?
- Python program to print all Disarium numbers between 1 to 100
- Print all odd numbers and their sum from 1 to n in PL/SQL
- Python program to print all Happy numbers between 1 and 100

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Suppose we have a list of numbers called nums of size n where all numbers in the list are present in the interval [1, n] some elements may appear twice while others only once. We have to find all of the numbers from [1, n] such that they are not in the list. We have to return the numbers sorted in ascending order. We have to try to find a solution that takes linear time and constant space.

So, if the input is like [4, 4, 2, 2, 6, 6], then the output will be [1, 3, 5].

To solve this, we will follow these steps −

- arr := an array of size nums + 1, and fill with 0
- for each i in nums, do
- arr[i] := arr[i] + 1

- missing := a new list
- for i in range 0 to size of arr, do
- if arr[i] is same as 0 and i is not same as 0, then
- insert i at the end of missing

- if arr[i] is same as 0 and i is not same as 0, then
- return missing

Let us see the following implementation to get better understanding −

class Solution: def solve(self, nums): arr = [0]*(len(nums)+1) for i in nums: arr[i] += 1 missing = [] for i in range(len(arr)): if arr[i] == 0 and i != 0: missing.append(i) return missing ob = Solution() print(ob.solve([4, 4, 2, 2, 6, 6]))

[4, 4, 2, 2, 6, 6]

[1, 3, 5]

Advertisements