એરેમાં મહત્તમ સતત નંબર્સ હાજર છે


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે ભેગા એડોબ એમેઝોન ફોરકાઇટ્સ MAQ
અરે હેશ

સમસ્યા નિવેદન

ધારો કે તમારી પાસે એરે છે પૂર્ણાંક કદ એન. સમસ્યા "એરેમાં મહત્તમ સતત સંખ્યાઓ હાજર છે" એ એરેમાં વેરવિખેર થઈ શકે તેવી સતત સંખ્યાની મહત્તમ ગણતરી શોધવા માટે પૂછે છે.

ઉદાહરણ

arr[] = {2, 24, 30, 26, 99, 25}
3

સમજૂતી: સતત સંખ્યાઓ ⇒ 24, 25, 26 (3 નો સમૂહ) છે.

arr[] = { -8, 9 , -1, -6, -5}
2

સમજૂતી: સળંગ સંખ્યાઓ 6 -5, -2 (XNUMX નો સમૂહ) છે.

અલ્ગોરિધમ

1. Declare a set.
2. Do traversing of the array, and insert all the values of array into the Set.
3. Set output to 0.
4. Traverse the array from i=0, to i<n(length of the array).
  1. Check if Set contains the arr[i].
    1. If true, then pick the current array element and store it to temp.
  2. While Set contains the temp, repeatedly increases the values of temp.
  3. Find out the maximum between output and temp-arr[i] and store it into the output.
5. Return output.

સમજૂતી

આપેલ એક પૂર્ણાંક એરે, આપણે એરેમાં હાજર સતત સંખ્યાની સૌથી વધુ ગણતરી શોધવી પડશે. અમે એક વાપરવા માટે જતા હોય છે સમૂહ. સમૂહ સમાન તત્વને દૂર કરવાની સુવિધા પ્રદાન કરે છે. તેથી, આપણે સામાન્ય તત્વના હેન્ડલ વિશે ચિંતા કરવાની જરૂર નથી, તે આપમેળે નિયંત્રિત થશે.

આપણે એરેના બધા વેલ્યુઓને સેટમાં ઉમેરીશું. કારણ કે પાછળથી, આપણે સળંગ સંખ્યાઓ પણ ચકાસીશું. આપણે ફરીથી એરેને પસાર કરીશું, દરેક તત્વને પસંદ કરીશું અને તે તપાસો નકશો તે અરર છે [i], જો ખરું હોય તો આપણે તે તત્વને અસ્થાયી ચલમાં પસંદ કરીશું અને ફરીથી તપાસો કે જો નકશામાં તે કામચલાઉ સમાવિષ્ટ છે, જો સાચું હોય, તો પછી ટેમ્પની કિંમત વધારી 1, અને પછી ફરી તપાસો, અને ફરીથી તેને વધારો, નકશામાં તે વધારાનું મૂલ્ય ન હોય ત્યાં સુધી આ ચાલુ રાખો. હવે, જ્યારે આપણે આ લૂપમાંથી બહાર આવીશું, ત્યારે આપણે વર્તમાન એરે એલિમેન્ટનું સૌથી વધતું મૂલ્ય શોધીશું જે નકશામાં હાજર છે, આપણે તેને 1 ની ગણતરી દ્વારા પણ વધારીશું, તેથી તે પણ સતત સંખ્યાઓ હશે.

આપણે હવે મહત્તમ આઉટપુટ અને ટેમ્પ-એરનો તફાવત શોધવા પડશે [i], એવું વિચારશો નહીં કે જો આ તફાવત ગણતરીની ખોટી સંખ્યા આપે છે, કારણ કે આપણને ટેમ્પની વધેલી કિંમત મળશે જ્યારે બહાર આવતા વખતે. લૂપ, આપણે હાજર સતત સંખ્યાની સાચી ગણતરી મેળવીશું. ત્યારબાદ આપણે આઉટપુટ અને ટેમ્પ-એઆરઆર [i] (આઉટપુટ, ટેમ્પ-એર [i]) ના તફાવત વચ્ચે મહત્તમ સંગ્રહ કરીશું. એર [i] એ સતત સંખ્યાઓ અને ટેમ્પની શ્રેણીનો અંતિમ બિંદુ છે. આ પગલાંને પુનરાવર્તિત કરવામાં આવશે જ્યાં સુધી અમને આખા એરેને ટ્રversવર્સ કરતી વખતે મહત્તમ આઉટપુટ ન મળે.

એરેમાં મહત્તમ સતત નંબર્સ હાજર છે

અમલીકરણ

એરેમાં હાજર મહત્તમ સતત નંબરો શોધવા માટે સી ++ પ્રોગ્રામ

#include<iostream>
#include<unordered_set>

using namespace std;

int getMaxConsecutiveNumber(int arr[], int n)
{
    unordered_set<int> SET;
    for (int i = 0; i < n; i++)
        SET.insert(arr[i]);

    int output = 0;
    for (int i = 0; i < n; i++)
    {
        if (SET.find(arr[i] - 1) == SET.end())
        {
            int temp = arr[i];

            while (SET.find(temp) != SET.end())
                temp++;

            output = max(output, temp - arr[i]);
        }
    }
    return output;
}
int main()
{
    int arr[] = {2, 24, 30, 26, 99, 25 };
    int n = sizeof(arr) / sizeof(int);
    cout << "Largest Set found : "<<getMaxConsecutiveNumber(arr, n)<< endl;
    return 0;
}
Largest Set found : 3

એરેમાં હાજર મહત્તમ સતત નંબર્સ શોધવા માટે જાવા પ્રોગ્રામ

import java.util.HashSet;

class LargestConsecutiveSet
{
    public static int getMaxConsecutiveNumber(int arr[], int n)
    {
        HashSet<Integer> SET = new HashSet<Integer>();
        for (int i = 0; i < n; i++)
        {
            SET.add(arr[i]);
        }
        int output = 0;
        for (int i = 0; i < n; i++)
        {
            if(SET.contains(arr[i]))
            {
                int temp = arr[i];
                while (SET.contains(temp))
                    temp ++;

                output = Math.max(output, temp - arr[i]);
            }
        }
        return output;
    }
    public static void main(String[] args)
    {
        int arr[] = {2, 24, 30, 26, 99, 25};
        int n = arr.length;
        System.out.println("Largest Set found : "+getMaxConsecutiveNumber(arr, n));
    }
}
Largest Set found : 3

એરેમાં હાજર મહત્તમ સતત નંબરો શોધવા માટે જટિલતા વિશ્લેષણ

સમય જટિલતા

ઓ (એન) જ્યાં “એન” એરેમાં તત્વોની સંખ્યા છે. કારણ કે આપણે હેશસેટનો ઉપયોગ કર્યો છે, જે નિરંતર, કાtionી નાખવા અને સતત સમય પર શોધ કામગીરીને મંજૂરી આપે છે.

અવકાશ જટિલતા

ઓ (એન) જ્યાં “એન” એરેમાં તત્વોની સંખ્યા છે. અમે આ રીતે રેખીય અવકાશ જટિલતાને N તત્વો સંગ્રહિત કરી છે.

સંદર્ભ