Given an array of size N-1 such that it only contains distinct integers in the range of 1 to N. Find the missing element.
Example 1:
Input:
N = 5
A[] = {1,2,3,5}
Output: 4
Example 2:
Input:
N = 10
A[] = {6,1,2,8,3,4,7,10,5}
Output: 9
Ans:
1)I'm trying to solve this problem using 2 for loops
2) Time complexity will be O(N);
3) ham kya karenge phle sare element ko sort kar denge
4) sort krne ke bad saare element ka sum ek sum1 variable me store kar lenge
5) ek loop lagayenge jo ki 1 se n ke barabar tak chalega aur 1 ke n ke barabar tak ke count ka sum, sum2 variable me store kar dega.
6) sum2 se sum1 ko minus kar denge then this will differ of array means missing element of array.
class Solution {
int missingNumber(int array[], int n) {
// Your Code Here
Arrays.sort(array);
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i < array.length; i++) {
sum1 += array[i];
}
for(int i = 1; i <= n; i++) {
sum2 += i;
}
return sum2 - sum1;
}
}
another approach is using single loop>>
let suppose n is 6
Example array: 1 2 3 4 6 but here u can se 5 is missing and n is 6 means I want to store 6 elements in array but 5 is missing
now first I will store all elements sum in sum1 variable = 1+2+3+4+6 = 16
Now lets find differ by using this formula sum of n nature n(n+1)/2
sum2 = n(n+1)/2;
After this formula total sum2 will be 21
then will take another variable missingNumber
int missingNumber = sum2-sum1;
then missingNumber will be 5 ;
Arrays.sort(array);
int sum1 = 0;
for(int i = 0 ;i < array.length; i++){
sum1= sum1+array[i];
}
int sum2 = n*(n+1)/2;
int result = sum2-sum1;
return result;
}
}
AnotherApproach ----
Leet Code Problem : https://leetcode.com/problems/missing-number/submissions/1182920023/
int n=nums.length;
int sum=(n*(n+1))/2;
int arr=0;
for(int i=0;i<n;i++)
{
arr=arr+nums[i];
}
return sum-arr;
}
}
Comments
Post a Comment