Skip to main content

Missing Number in Array

EasyAccuracy: 29.59%Submissions: 1MPoints: 2

Internship Alert!
Become an SDE Intern by topping this monthly leaderboard! 

banner

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

Popular posts from this blog

Polity

  1.    सन 1600 में ईस्ट इंडिया कंपनी भारत आई थी जिसका परमिशन ब्रिटिश की महारानी एलीजाबेथ ने दिया था 2.    परमिशन में चार्टर दिया गया था साथ ही मोनोपोली दी गयी थी अलीजाबेत के द्वारा 3.    बिटिश ईष्ट इंडिया कंपनी भारत शिप से आई थी जिस शिप का नाम था रेड ड्रैगन 4.    भारत में आने के बाद उन्होंने पहली फैक्ट्री 1611 मछलीपटनम में बनाई 5.    दूसरी फैक्ट्री 1612 में सूरत में बनाया था 6.    फैक्ट्री नियन्त्र के लिए तीन प्रेसीडेंसी बनायीं गयी जो थी बॉम्बे, बंगाल, मद्रास 7.    बंगाल का राजा था सिराजुदुल्ला और ब्रिटिश रोबर्ट clive युद्ध किया 1757 ऐसा जिसे battle of plasi कहा गया जिसमें रोबर्ट clive की जीत हुयी 8.    कंपनी का rule 1773 से 1858 तक चला था 9.    ताज का शाशन था 1858 से 1947 10.    Regulating act आया था 1773 में 11.    Act of settlement आया था 1781 में 12.    भारत परिषद् अधिनियम आया था 1861, 1892, 1909 13.    Govt of इंडिया act आया था 1858 में 14.                  ब्रिटिश सरकार ने 1773 में एक regulating act लाया गया जिसमें बंगाल को हेड बनाया गया जिसे गवर्नर जनरल कहा गया बंगा

Linked List Data Structure

Question: How to create without generic Int type Node ? Ans:  public class Node { // this is Node class without Generic int data ; // this is for data like array Element Node next ; //Node ek class hai , usi class ka khud ka variable hai, This is Node(Class) Type variable for //Node is basically refer to class , this is for next element Node ( int data ){ // this is constructor bcse user will pass data value and int because we want to create int type data constructor this . data = data ; // this is refer data next = null ; } }  

Test 2

 Question: You have made a smartphone app and want to set its subscription price such that the profit earned is maximised. There are certain users who will subscribe to your app only if their budget is greater than or equal to your price. You will be provided with a list of size N having budgets of subscribers and you need to return the maximum profit that you can earn. Lets say you decide that price of your app is Rs. x and there are N number of subscribers. So maximum profit you can earn is : m*x Sample input 1: 30 20 53 14 Output 60 import   java . util .*; import   java . util . Scanner ; public   class   solution   {      public   static   int   maximumProfit ( int   budget [])   {      Arrays . sort ( budget );          // int maxProfit = 0;          // // Iterate through each possible subscription price and calculate profit          // for (int i = 0; i < budget.length; i++) {          //     int currentProfit = budget[i] * (budget.length - i);          //     maxProfit = Mat