ઝીરો લીટકોડ સોલ્યુશન સુધીનો અનન્ય પૂર્ણાંકોનો સરવાળો શોધો


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

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

ઝીરો લીટકોડ સોલ્યુશન સુધીનો અનન્ય પૂર્ણાંકોનો સરવાળો શોધો

n = 5
[-7,-1,1,3,4]

સમજૂતી: સારું, સમસ્યાનું બહુવિધ આઉટપુટ હોઈ શકે છે. પરંતુ આપેલ આઉટપુટ લઈએ. આઉટપુટમાં બધા પૂર્ણાંકો અનન્ય છે. આ રીતે લાદવામાં આવેલી સ્થિતિ અને આપેલ પૂર્ણાંકોનો સરવાળો 0 છે તેથી, બંને શરતો સંતુષ્ટ છે.

n = 3
[-1, 0, 1]

સમજૂતી: આપેલ આઉટપુટમાં તમામ અનન્ય પૂર્ણાંકો હોય છે અને તેમનો સરવાળો પણ 0 હોય છે. આમ, આઉટપુટ બધી લાદવામાં આવેલી સ્થિતિઓને સંતોષે છે.

ઝીરો લિટકોડ સોલ્યુશન સુધીના એન અનન્ય પૂર્ણાંકોના સરવાળા માટે અભિગમ

સમસ્યાઓનો અભિગમ એ મોટાભાગે પેટર્નને તોડી નાખવાનો છે. આ પ્રકારના પ્રશ્નોમાં હંમેશાં કેટલીક અંતર્ગત પેટર્ન હોય છે. તેથી, જ્યારે પણ આપણે કોઈ પ્રશ્નની પેટર્ન શોધવાનો પ્રયત્ન કરીએ. હંમેશાં n ના નાના મૂલ્યો માટે જવાબ શોધવાનો પ્રયત્ન કરો, પછી પેટર્ન શોધવાનો પ્રયાસ કરો. એન = 1 માટે આઉટપુટ 0 હોઈ શકે છે. એન = 2 માટે આઉટપુટ [-1, 1] હોઈ શકે છે. એ જ રીતે n = 3 માટે, આઉટપુટ [-2, 0, 2], n = 4 માટે, આઉટપુટ [-3, -1, 1, 3] હોઈ શકે છે. તેથી, આપણે એક પેટર્ન જોશું કે આઉટપુટ એપી બનાવે છે જ્યાં જો એન ની કિંમત વિચિત્ર હોય. મધ્યમ તત્વ 0 છે. જો n ની કિંમત પણ છે તો (n + 1) / 2 તત્વ 1 છે. તેથી, આ માહિતીનો ઉપયોગ કરીને, આપણે સૂત્ર ઘડી શકીએ. સૂત્ર એક [i] = 2 * i + 1-n હોઈ શકે છે. હવે, આપણે ફક્ત આ સૂત્રનો ઉપયોગ n ના તત્વોને ભરવા માટે કરીએ છીએ એરે.

ઝીરો લીટકોડ સોલ્યુશન સુધીના અનન્ય પૂર્ણાંકોનો સરવાળો શોધવા માટેનો કોડ

સી ++ કોડ

#include <bits/stdc++.h>
using namespace std;

vector<int> sumZero(int n) {
    vector<int> v(n);
    for(int i=0;i<n;i++)
        v[i] = 2*i - n + 1;
    return v;
}

int main(){
    vector<int> output = sumZero(7);
    for(auto x: output)
        cout<<x<<" ";
}
-6 -4 -2 0 2 4 6

જાવા કોડ

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
    public static int[] sumZero(int n) {
        int[] v = new int[n];
        for(int i=0;i<n;i++)
            v[i]= 2*i - n + 1;
        return v;
    }
    
    public static void main(String[] args){
    	int[] output = sumZero(7);
    	for(int i=0;i<7;i++)
    		System.out.print(output[i]+" ");
    }
}
-6 -4 -2 0 2 4 6

જટિલતા વિશ્લેષણ

સમય જટિલતા

ઓ (એન), કારણ કે આપણે ફક્ત એરે ભરીએ છીએ અને દરેક તત્વની ગણતરી કરી શકાય છે ઓ (1). આમ, સમયની જટિલતા રેખીય છે.

અવકાશ જટિલતા

ઓ (એન), કારણ કે આપણે એક એરે બનાવીએ છીએ જે આઉટપુટ તરીકે પરત કરવી પડશે.