لاڳيتو ليٽ ڪوڊ حل ذريعي ارري جي فارميشن چيڪ ڪريو  


تڪليف جي سطح آسان
بار بار پڇڻ ۾ سليمان وساڻ
algorithms ڪيريو ڪوڊ سگنل ڪوڊنگ هش ميپ انٽرويو انٽرويو جي تياري ليٽ ڪوڊ LeetCodeSolutions جي حساب سان

مسئلو چيڪ ڪريو آرري فارميشن ذريعي لٽ ڪوڊ جو حل اسان کي هڪ قطار سان گڏ مهيا ڪيو. انهي سان گڏ اسان کي پڻ هڪ تسلسل ڏنو ويو آهي. اسان کي چيو ويندو آهي ته ڳولڻ لاءِ جيڪڏهن اسان ڪنهن ترتيب سان ڏنل ترتيب ٺاهي سگهون ٿا صف گرفتارن جو. اسان ارادي سان ترتيب ڏئي سگهون ٿا جيڪو اسان چاهيون ٿا. پر اسان آرين اندر عنصر کي وري ترتيب نه ڏئي سگھيا آهيون. اسان کي اهو به ٻڌايو وڃي ٿو ته انگ اکرن جي صف ۾ بي مثال هوندا آهن. تنهنڪري حل تي ڌيان ڏيڻ کان پهريان ، اسان کي ڪجهه مثالن تي هڪ نظر وجهڻ گهرجي.

لاڳيتو ليٽ ڪوڊ حل ذريعي ارري جي فارميشن چيڪ ڪريوپن

arr = [15,88], pieces = [[88],[15]]
true

وضاحت: اسان عناصر کي ريورس ترتيب ۾ ترتيب ڏئي سگهون ٿا. اھڙيءَ طرح آخري صف جيڪا 15 آھي سا اڳيان اچي ويندي. اهڙي طرح ، پهريون عنصر پوئتي ۾ ويندو. ان طريقي سان اسان ڏنل ترتيب ڏئي سگھون ٿا.

arr = [91,4,64,78], pieces = [[78],[4,64],[91]]
true

وضاحت: جيڪڏهن اسان پهرين عنصر کي پهرين گڏ ڪيون ، پوءِ وچين صف ، ۽ آخر ۾ پهرين صف. انهي طريقي سان اسين گهربل تسلسل حاصل ڪري سگھون ٿا.

چڪاس ليوٽ ڪوڊ حل ذريعي چيڪ آرري فارميشن جي چڪاس  

مسئلو چيڪ ڪريو آرري فارميشن ذريعي ڪليڪشن ليٽ ڪوڊ سلوشن اسان کان پڇيو ته ڇا اسان صفن جي صف مان گهربل ترتيب حاصل ڪري سگهون ٿا. مسئلو هڪ اڀرندڙ لڳي ٿو ، جتي اسان کي سڀني امکانات کي جانچڻ جي ضرورت آهي. تعميري انداز ۾ ، اسان پهريان ڪوشش ڪندي هڪ صف چونڊي ۽ پوءِ چڪاس ڪريو ته ڇا موجوده صف مناسب آهي پوءِ ساڳيو عمل انجام ڏيو جيستائين اسان تسلسل ختم نه ڪريون. پر اهو فائدو جيڪو اسان هتي حاصل ڪيو آهي ، منفرد عنصر آهي. تنهن ڪري ، اسان صرف تيستائين پهريون عنصر چيڪ ڪري پهرين عناصر جي پهرين عناصر سان. اڃا به چڪاس ڪندي اهو يقين ڏياريندو آهي ته اسين چونڊ واري صف سان اڳتي وڌي سگهون ٿا.

پڻ ڏسو
شاگردن جي حاضري رڪارڊ آئون ليٽ ڪوڊ حل

صف کي چونڊڻ کان پوءِ ، اسان ان ۾ جاچ ڪري سڀني عنصرن کي چڪاسينداسين ته آيا صف جي تسلسل جا سڀئي عنصر آهن جيستائين اسان ان کي ختم نه ڪريون. تڪميل کان پوءِ ، ساڳيو عمل بار بار ٿيندو آهي. جيڪڏهن صف ۽ تسلسل جي عنصر ۾ ڪجهه غلط نموني موجود آهن ته اسين غلط واپس موٽون ٿا. پڇاڙيءَ ۾ ، جڏھن اسان کي ڪا بي ترتيبي نٿي ملي ته اسان سچا موٽياسين.

چيڪ لي آر ڪوڊ فارميشن ذريعي چيڪ آرري فارميشن لاءِ ڪوڊ  

سي ++ ڪوڊ

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

bool canFormArray(vector<int>& arr, vector<vector<int>>& pieces) {
    unordered_map<int,int> entry;
    for(int i=0;i<pieces.size();i++)
        entry[pieces[i][0]] = i;
    int i =  0;
    while(i < arr.size()){
        if(entry.count(arr[i])){
            vector<int> &piece  = pieces[entry[arr[i]]];
            for(auto x: piece)
                if(x != arr[i++])
                    return false;
        } else {
            return false;
        }
    }
    return true;
}

int main(){
    vector<int> arr = {91, 4, 64, 78};
    vector<vector<int>> pieces = {{78},{4,64},{91}};
    cout<<(canFormArray(arr, pieces) ? "true" : "false");
}
true

جاوا ڪوڊ

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

class Main
{
  public static boolean canFormArray(int[] arr, int[][] pieces) {
        HashMap<Integer, Integer> entry = new HashMap<Integer, Integer>();
        for(int i=0;i<pieces.length;i++)
            entry.put(pieces[i][0], i);
        int i =  0;
        while(i < arr.length){
            if(entry.containsKey(arr[i])){
                int n = pieces[entry.get(arr[i])].length;
                int k = entry.get(arr[i]);
                for(int j=0;j<n;j++)
                    if(pieces[k][j] != arr[i++])
                        return false;
            } else {
                return false;
            }
        }
        return true;
    }
    
  public static void main (String[] args) throws java.lang.Exception {
    int[] arr = {91, 4, 64, 78};
      int[][] pieces = {{78},{4,64},{91}};
      System.out.print(canFormArray(arr, pieces) ? "true" : "false");
  }
}
true

پيچيدگي تجزيي  

وقت جي پيچيدگي

اي (اين) ، جتي اين ڏنل عناصر جي ڪل تعداد آهي. وقت جي پيچيدگي گھٽجي چڪي آهي ليڪن استعمال ڪرڻ جي ڪري هش ميپ.

خلائي پيچيدگي

اي (ايم) ، جتي ايم arrays جي تعداد جو تعداد آهي.

1