L16. M-Coloring Problem | Backtracking

Поділитися
Вставка
  • Опубліковано 30 лис 2024

КОМЕНТАРІ • 215

  • @takeUforward
    @takeUforward  3 роки тому +42

    ✅ Instagram: instagram.com/striver_79/​
    Please comment if you understand, a comments means a lot to me :)

    • @fardeenshaikh6434
      @fardeenshaikh6434 3 роки тому +3

      Eid Mubarak

    • @jayadubey_22
      @jayadubey_22 3 роки тому

      bhaiyaa I was not able to understand the brute force approach solution of this at gfg please explain that also in some other problems

    • @rosansenapati-pl5hr
      @rosansenapati-pl5hr Рік тому

      Striever why we don't use any of graph tarversal?

    • @shivamdashore6864
      @shivamdashore6864 Рік тому +1

      Why TC will be M^N ?? it should be (M^N) * N, Because we traverse adjacency list as well in isSafe method everytime and maximum cost of adjList will be of N So. TC will be (M^N) * N @takeUforward

  • @lakhansingh_barod
    @lakhansingh_barod Рік тому +81

    Tried solving without looking at any explanation for the first time in this playlist, took me almost three hours but did it on my own❤

  • @tanayshah275
    @tanayshah275 3 роки тому +113

    Heads up: If you are practicing on gfg the graphs are stored in a different manner for different programing languages.
    For c++ : in matrix
    For Java: in an adjacency list
    For Python : in matrix
    For Javascript : in matrix
    Just posting because when I started implementing with python I was access the graph as if it is an adjacency matrix and it was resulting in wrong submission so, I thought if anyone else is trying to do the same can save some time by not repeating my mistake.

    • @tanayshah275
      @tanayshah275 3 роки тому +9

      posting python version of same code :
      def is_safe(node, c, graph, color, n):
      for i in range(n):
      if i != node and graph[i][node] == 1 and color[i] == c:
      return False
      return True

      def solve(node, graph, color, m, n):
      if node == n:
      return True
      for c in range(1, m + 1):
      if is_safe(node, c, graph, color, n):
      color[node] = c
      if solve(node + 1, graph, color, m, n):
      return True
      color[node] = 0
      return False
      color = [0] * V
      return solve(0, graph, color, k, V)

  • @manasanand3531
    @manasanand3531 3 роки тому +42

    I was looking for this problem explanation for the past few days but could'nt find a proper one. Now I can surely say, this one was the best amongst all. Thanks for this.🙌

  • @whocares7557
    @whocares7557 3 роки тому +47

    Good explanation like always, thanks🙂❤️
    Wanted to get clarified of two things here:
    🤔0. Isn't the complexity M^N, because there are N places to fill with M choices for each, so wouldn't M be multiplied N times making it M^N?
    🤔1. We haven't considered the time complexity for checking the possibility of filling the color(isSafe), which can be of order N at worse, but shouldn't we?

    • @bharathkumar5870
      @bharathkumar5870 2 роки тому +9

      total time (M^N)*N(issafe)

    • @whocares7557
      @whocares7557 2 роки тому +5

      @@bharathkumar5870 yes, that's what I thought it should be.

    • @parthsalat
      @parthsalat 2 роки тому +3

      @@bharathkumar5870 Yes, That's what I believe is correct

    • @shivamnegi7552
      @shivamnegi7552 Рік тому +4

      @@bharathkumar5870 why not (M*N) ^ N ?

    • @upamanyumukharji3157
      @upamanyumukharji3157 6 місяців тому +1

      @@shivamnegi7552 yes checking will be taken for each color pick so (M*N)^N

  • @human75788
    @human75788 2 роки тому +12

    I solved the problem myself just with your explanation upto 13 minutes. Thanks Striver. The way you spoonfeed us nobody does, it just stays in my head.

  • @shubhambhardwaj8894
    @shubhambhardwaj8894 3 роки тому +21

    Thank you brother! I'm preparing for my placements following your sde sheet and I'm getting so much confidence, please continue doing the great work 🙏👍

    • @tekken1935
      @tekken1935 3 роки тому

      how is the progress? Placed yet?

    • @jaydeepkadam
      @jaydeepkadam Рік тому +1

      Sir placed?
      Please reply ✨

  • @kamalkantrajput4431
    @kamalkantrajput4431 3 роки тому +14

    time complexity = O(m ^ n) not o(n^m) thanks bhaiya .
    as we have m choice for each node .

    • @SJ_46
      @SJ_46 2 роки тому +1

      yes right

  • @mohitsingh7793
    @mohitsingh7793 Рік тому +4

    Correction in Time-Complexity discussed in striver's vedio
    T.C = O(M^N)*N(isSafe-fxn)
    For one node ,we have m different colors.
    For n node we have m*m*m.....n times =M^N
    Also isSafe() takes O(N) in worst case.
    Let me know if I was wrong.

  • @ROSHANKUMAR-rl6bf
    @ROSHANKUMAR-rl6bf 3 роки тому +8

    If the graph is connected simple dfs based recursion also works but one can only appreciate this if he wrote code for connected and realises if there are more than one components what should be done

    • @vankshubansal6495
      @vankshubansal6495 3 роки тому +2

      True, I skipped this part. Attaching the DFS solution which handles all cases
      bool solve(int sv, bool graph[101][101], int V, vector& visited, int colors) {
      unordered_map visitedColors;
      for(int i = 0; i < V; i++) {
      if(graph[sv][i] == true && visited[i] != -1) visitedColors[visited[i]] = 1;
      }
      if(visitedColors.size() == colors) return false;
      for(int i = 0; i < colors; i++) {
      if(visitedColors[i] > 0) continue;
      visited[sv] = i;
      bool isAll = true;
      int j = 0;
      for(j = 0; j < V; j++) {
      if(graph[sv][j] == true && visited[j] == -1) {
      if(solve(j, graph, V, visited, colors) == false) break;
      }
      }
      if(j == V) return true;
      }
      visited[sv] = -1;
      return false;
      }
      bool graphColoring(bool graph[101][101], int m, int V) {
      vector visited(V, -1);
      for(int i = 0; i < V; i++) {
      if(visited[i] == -1) {
      if(solve(i, graph, V, visited, m) == false) return false;
      }
      }
      return true;
      }

    • @rishabhgupta9846
      @rishabhgupta9846 2 роки тому +2

      @@vankshubansal6495 can you pls explain how your code is working?

    • @sairamsudireddy6191
      @sairamsudireddy6191 Місяць тому

      @@vankshubansal6495 is this a working solution ??
      for(j = 0; j < V; j++) {
      if(graph[sv][j] == true && visited[j] == -1) {
      if(solve(j, graph, V, visited, colors) == false) break;
      }
      }
      In this part of the soution, if you are able to color some of the child nodes, and not able to color a child node, where are you backtracking (un coloring )all the child nodes that are colored ?

  • @sowndaryav6680
    @sowndaryav6680 3 роки тому +22

    U are doing a great job for students sir. Thank you so much for your efforts.

  • @Tomharry910
    @Tomharry910 Рік тому +1

    Beautifully explained a tough problem very simply and in an easy to understand way. Thank you so much!

  • @vegitogamingpubg3364
    @vegitogamingpubg3364 3 роки тому +3

    Very detailed and easy to understand explanation.. 10 times better than the so called paid courses.. Thank you so much bhaiya ❤

  • @98ujaal
    @98ujaal Рік тому +7

    Correction:
    Time complexity is O(M^N) not O(N^M) (which solves the P vs NP problem and he would have been a millionaire by now)

    • @priyanshudwivedi7535
      @priyanshudwivedi7535 11 місяців тому +1

      What do you mean by him being a millionaire?

    • @shivammishra6381
      @shivammishra6381 3 місяці тому

      @@priyanshudwivedi7535 P vs NP problems are problems can truly revolutionize the world of computing and maths. and have reward of a million dollars for the person who solve them.

  • @AdityaRajVerma-io3pr
    @AdityaRajVerma-io3pr 10 місяців тому

    i was not able to draw the recursion tree, now as I understood the approach, I just coded it by myself, thanks bhaiya

  • @devanshikapla7491
    @devanshikapla7491 Рік тому +4

    Amazing explanation as well as the code. I haven't seen so much clear explanation on any other channel. Thankyou for this❤️

  • @Rohan-hj9gg
    @Rohan-hj9gg 3 роки тому +11

    The time complexity has to be M^N ?
    Because the height of tree will go till N and for each node we have M choices.

  • @sasirekhamsvl9504
    @sasirekhamsvl9504 3 роки тому +3

    The best explanation I have found on youtube. Thank you so much.

  • @nitinvadadoriya8280
    @nitinvadadoriya8280 Рік тому +1

    Small Correction In Time Complexity
    T.C = ~M^N not N^M
    Because we have M-Color choice for every nodes. Tell me am i correct or not..

  • @aditya-bl5xh
    @aditya-bl5xh 3 роки тому +4

    Shuru majburi mei kiye the ab mazza aa rha hai...

  • @pranavpandey4331
    @pranavpandey4331 3 роки тому +6

    I think the time complexity should be O(m^N)

  • @omkarsawant9267
    @omkarsawant9267 11 місяців тому

    C++ Code for M coloring Problem-->
    TC-- M^V v is no of vertices and M is max no if colors that can be used. Exponential TC due to Recursive nature of algorithm
    SC-- O(V) as color vector stores color assigned to each vertex. Size is proportional to no of vertices in the graph.But it is at most O(V) due to depth of recursion.
    ----- Code Follows ------
    #include
    #include
    using namespace std;
    class Graph
    {
    private:
    int V; // No of Vertices
    vector adj; // adjacent list;
    public:
    // constructor
    Graph(int Vertices) : V(Vertices), adj(Vertices) {}
    // Funciton to add an edge to the graph
    void addEdge(int u, int v)
    {
    adj[u].push_back(v);
    adj[v].push_back(u);
    }
    // func to check if it is possible to color the graph with at most M colors
    bool graphColoring(int M);
    private:
    // utility function for graph coloring;
    bool graphColoringUtil(int vertex, vector &color, int M);
    };
    bool Graph :: graphColoringUtil(int vertex, vector &color, int M)
    {
    // check if we have assigned colors to all vertices
    if (vertex == V)
    return true;
    // try assigning different colors to current vertex
    for (int c = 1; c

  • @snehagoyal4978
    @snehagoyal4978 Рік тому +1

    Thank you striver, after watching your previous videos of this playlist, I could do this on my own;

  • @ashutoshkumawat7854
    @ashutoshkumawat7854 3 роки тому +4

    I Think it's Complexity is M^n because m is no.of choice like it happen in printing all sub sets 2^n.......please correct me if i'm wrong

  • @abhisheksa6635
    @abhisheksa6635 Рік тому

    Badhiya bhai, woh tumney strategy same rakha h parallel recursion wala and saarey backtracking solve kar liye.

  • @janaSdj
    @janaSdj 6 місяців тому

    One more optimization,if m>=4 then it is always possible to colour a graph by 4 colour theorem. So if m>=4 return true.

  • @siddiqabr7110
    @siddiqabr7110 Місяць тому +1

    Why it is on the recursion list instead of graph I don't even know what a graph is

  • @adrikagupta5573
    @adrikagupta5573 3 роки тому +22

    Great video! I have one doubt though. Shouldn't the time complexity be O(m^N)?

    • @abhinavpandey3356
      @abhinavpandey3356 3 роки тому

      Can u explain why n^m seems correct as for every node there are m possibility

    • @sparshsharma6068
      @sparshsharma6068 3 роки тому +10

      ​@@abhinavpandey3356 Here's how i devised the TC for this:
      At each node, there will be at max there will be m operations and for each operation on a node, their childs will have their own respective m operations.
      i.e if a graph was:
      1
      / \
      2 3
      then at node 1 there will be m operations but for each operation on node 1, there will be m operations on its successive nodes(here on the node 2 and then on node 3). i.e m*m*m = m^3 == m^n
      thus on graphs having n nodes, starting from source node, there will be: m*m*m*...........*m(n terms) == m^n.
      Thus, TC will be O(m^n).
      I hope it helps!

    • @PiyushSharma-bo6pp
      @PiyushSharma-bo6pp 2 роки тому

      @@abhinavpandey3356 easy o(n) approach is there

    • @Pawan_Kumar_Mehta
      @Pawan_Kumar_Mehta 2 роки тому

      Yes yr right cause the height of the tree will be N and at each level of rec we will have m nodes.

    • @parthsalat
      @parthsalat 2 роки тому

      Yes, imo that should be the correct time complexity

  • @mohammedwaseem8599
    @mohammedwaseem8599 3 роки тому +6

    Hello bhaiya i hope you are doing extremely well

  • @stith_pragya
    @stith_pragya 7 місяців тому +1

    Understood............Thanks a ton for this wonderful video..........🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

  • @reshubnigam8375
    @reshubnigam8375 3 роки тому +5

    How do we get the intuition that here we had to traverse serially on the nodes and not initiate dfs for every connected component?
    Had been doing that and got stuck at what the base case would be for dis-connected components as backtracking was erasing everything :|

  • @sohamsonwane1534
    @sohamsonwane1534 6 місяців тому

    The best what you get
    i have done the recursion and backtracking from another paid courser but it is not worth it
    but the striver recursion playlist is bast of class
    i have done all recursion from 1 to last and now the recursion feel like game not very easy but so far so good

  • @factfactorial632
    @factfactorial632 2 роки тому +5

    I have doubt , time complexity should be N*(N^m) because we have that IsSafe function also there and at max a node can be connected to all the others node So O(N) for chacking
    btw Great explanation

  • @animearena8443
    @animearena8443 2 роки тому

    python code for anyone struggling with it:
    def graphColoring(graph, k, V):
    color=[0]*V
    def mcolor(vertex,graph,k,V):
    if vertex==V:
    return True

    for i in range(1,k+1):
    flag=1
    for j in range(V):
    if graph[vertex][j]==1 and color[j]==i:
    flag=0
    break

    if flag==1:
    color[vertex]=i
    if mcolor(vertex+1,graph,k,V):
    return True

    color[vertex]=0
    return False

    return mcolor(0,graph,k,V)

    • @riyakumari8377
      @riyakumari8377 2 роки тому +1

      hey can u tell me why are we doing => graph[vertex][j]==1 ?

    • @nirupamsuraj1634
      @nirupamsuraj1634 Рік тому +1

      ​@@riyakumari8377to check if the node j is connected to vertex node

  • @narayanbung7550
    @narayanbung7550 3 роки тому

    Your videos make problem look very simple.Thanks

  • @PrashantSingh-jy6zp
    @PrashantSingh-jy6zp 3 роки тому +1

    for skip ads go to 4:01

  • @sahelidebnath9972
    @sahelidebnath9972 2 роки тому

    For adjacency list, shouldn't we check:
    public boolean isColorPossible(int node, int length, int colorTochoose,boolean graph[][], int[] color )
    {
    for(int i=0;i

  • @kaichang8186
    @kaichang8186 Місяць тому

    understood, thanks for the perfect explanation

  • @supratimbhattacharjee5324
    @supratimbhattacharjee5324 3 роки тому

    Best explanation....learning for my practical exams

  • @rishukumarsingh3926
    @rishukumarsingh3926 Рік тому

    In this problem, we are trying every color, if and only if the color is possible to take, i.e. we are filtering and taking, we are not waiting to mismatch!

  • @sanjana-singla
    @sanjana-singla Рік тому +3

    Can't we just count the maximum number of adjacent nodes present in the graph? if the maximum nodes is greater than the number of colors, return false, else return true?

    • @akshitkathuria3516
      @akshitkathuria3516 Рік тому +1

      I had the same thought and tried applying it on the bipartite graph problem but one test case failed which is this one:
      [[4,1],[0,2],[1,3],[2,4],[3,0]]
      Here every node has 2 adjacent but we still cannot color the graph using 2 colors.
      So i think it wont work for this problem as well

  • @ravindermaan1887
    @ravindermaan1887 Рік тому +1

    Time Complexity: O(M^N).

  • @shwetabhagat8920
    @shwetabhagat8920 Рік тому

    you make all the problems easy⭐

  • @rushidesai2836
    @rushidesai2836 2 місяці тому

    Very classic recusion problem.

  • @abhinavpandey3356
    @abhinavpandey3356 3 роки тому +2

    What if I don't put colour [node]=0 Does it affect anything ,as I'm looking colr of negbour node to match with the colr I'm am trying to color for a particular node for deciding it's color

  • @bitturanjan9539
    @bitturanjan9539 3 роки тому +3

    Great explanation man❤️

  • @vaishnavi5070
    @vaishnavi5070 2 роки тому

    shouldn't the graph be List where every index is considered as node and the list that is there in that index are the adjacent nodes??

  • @rishurana9655
    @rishurana9655 2 роки тому +1

    This question is exactly similar to n queen problem for those who have problem can first try that one and then come to this question

    • @nakuljindal1421
      @nakuljindal1421 2 роки тому

      Bro why we have backtracked in this as for loop itself change its colour suppose if statement gives u false then ultimately it will go to another colour why does it makes difference whether we have done 0 previously or not

  • @parthsalat
    @parthsalat 2 роки тому +1

    C++ code starts at 20:53

  • @SeloniSinha
    @SeloniSinha Рік тому

    Wonderful explanation sir!! Thank you !!!

  • @Ace-ex9gg
    @Ace-ex9gg Рік тому

    explanation is good but time complexity is (n-1)*m^n by the way.

  • @fardeenshaikh6434
    @fardeenshaikh6434 3 роки тому +5

    Eid Mubarak striver Bhai

  • @shivanshkhare2724
    @shivanshkhare2724 2 роки тому

    After watching this series , I understood why striver is god of coding.

  • @hackstreet781
    @hackstreet781 16 днів тому

    Time complexity should be M^N and not N^M

  • @RitikKumar-lv8cm
    @RitikKumar-lv8cm 2 роки тому

    hi in this problem we can not simply check for each node. instead we must create adjacent node for each node and then check for possibility of coloring

  • @vishnuthulasidosss
    @vishnuthulasidosss 2 роки тому +1

    I wonder why the BFS solution is not working! Could you tell me what's wrong with BFS?

  • @prasannapm3220
    @prasannapm3220 2 роки тому

    Amazing thought process sir !!

  • @sahelidebnath5085
    @sahelidebnath5085 10 місяців тому

    Time complexity will be O(M^N) isn't it?
    (worst case)M colors for every node(N).

  • @YogaJournalWithMimansa
    @YogaJournalWithMimansa 5 місяців тому

    Hi All, I was really confused between M coloring problem and bi partite graph problem. The Bi partite graph problem uses DFS/BFS for checking if no 2 adjacent nodes are filled with the same color(2 colors). So I was wondering if we could use DFS/BFS here as well. Turns out no, as in the GFG practice problem, in one TC. we have disconnected nodes as well in the graph and this cant be covered with DFS/BFS. Please let me know if my understanding is correct.

    • @Yash_Parashar
      @Yash_Parashar Місяць тому

      But we can us the dfs and bfs for disconnected nodes also.

  • @kannupriyarana4971
    @kannupriyarana4971 3 роки тому

    clear and straight-forward explanation. Thanks bro :)

  • @nopecharon
    @nopecharon 2 роки тому +1

    Do i need to learn graphs for this problem?

  • @siddharthvs1770
    @siddharthvs1770 3 роки тому

    Can we not use a greedy approach for this problem? Would it fail, if yes why?

  • @madhurgupta4220
    @madhurgupta4220 2 роки тому +1

    A Detailed And A Great Explanation .

  • @lettry5297
    @lettry5297 3 роки тому +2

    Thanks you sir for this video. Sir can you please clarify whether for SDE profile it is mandatory to know C++ or Java ? Python is not sufficient for cracking test , I am practicing with Python only? Sir please guide..... 🤷‍♂️

  • @aasthajha1051
    @aasthajha1051 3 роки тому

    explanation ek no.!!!!!!!!!!!!!!!!!

  • @gunanka6860
    @gunanka6860 5 місяців тому

    again solved on my own even without the explanation... i think im getting better : ")

  • @sahiljain2524
    @sahiljain2524 3 роки тому +4

    Bhaiya Time complexity M^N ayegi na ?

    • @takeUforward
      @takeUforward  3 роки тому +1

      Hnn

    • @sahiljain2524
      @sahiljain2524 3 роки тому

      @@takeUforward Ok bhaiya

    • @factfactorial632
      @factfactorial632 2 роки тому

      @@takeUforward Bhaiya it should be N*(N^m) because we have that IsSafe function also there and at max a node can be connected to all the others node So O(N) for chacking

  • @083_h_nitishkumarjha3
    @083_h_nitishkumarjha3 Рік тому

    why we are calling the function for next serial node, shouldn't we call for the nodes attached to this node ?

  • @K_EN_VisheshSaini
    @K_EN_VisheshSaini 2 роки тому +1

    I havent done Graphs yet, do i need to know graphs for this question or Recursion is sufficient alone?

    • @gauravagrawal7988
      @gauravagrawal7988 Рік тому

      You should have very basic knowledge of graphs for this

  • @parthsalat
    @parthsalat 2 роки тому +1

    Thanks

  • @chase.2595
    @chase.2595 Рік тому

    isnt time complexity m^n?
    as m choices of colour available in n recursive calls?

  • @techfreak416
    @techfreak416 2 роки тому

    why do we have to check all possible safe colors for every node?
    why cant we just assign any 1 of the colors which are not adjacent to current node.

  • @paragroy5359
    @paragroy5359 3 роки тому

    Thanks for the playlist sir......it's really helpful

  • @skyy-v5o
    @skyy-v5o 11 місяців тому

    Hello striver , I see there are no articles linked to bit manipulation , linked list problems . Plus there are no javascript code on striver website .

  • @VikashKumar-tr9cq
    @VikashKumar-tr9cq 2 роки тому

    will this algorithm work if there is more than one connected components?

  • @ratankumar1399
    @ratankumar1399 2 роки тому

    can you make some videos on BFS approach of this ques ,its bit confusing for me

  • @viswanathank2551
    @viswanathank2551 3 роки тому

    thanks for the best explanation in yt

  • @riteshadwani9084
    @riteshadwani9084 Рік тому

    Amazing explanation!

  • @rishukumarsingh3926
    @rishukumarsingh3926 Рік тому

    Why in this problem, we didn't follow standard dfs and used as node numbers as a part of traversal?

  • @aloklaha8694
    @aloklaha8694 5 місяців тому

    Thanks brother. Understood

  • @josephstark5810
    @josephstark5810 Рік тому

    i think we cant do it by graph traversal beacause it give tle in case of cycle and also hard to manage backtracking right?

  • @aryansinha1818
    @aryansinha1818 2 роки тому

    *Tippy tippy tip top which color do you choose?*

  • @dipjoybasak3156
    @dipjoybasak3156 3 роки тому +1

    Brother cant we just check for bipartiteness of the graph? Like if it is bipartite, we can always color using m>=2 and if its not then anything m>=3... Wont this work?

    • @nameetjain2251
      @nameetjain2251 3 роки тому

      Exactly what i was thinking.

    • @sharmaji490
      @sharmaji490 3 роки тому +1

      Consider when you are asked to tell if a graph can be colored using 5 colours and suppose it is not biparatite. Then what will you return. You are not sute about 3,4,5 colors. So only checking biparatiye won't work every time.
      Hope it is helpful in some way

    • @sharmaji490
      @sharmaji490 3 роки тому

      If a graph is not paratite m>=3 might work

  • @anshulgoel1940
    @anshulgoel1940 Рік тому

    Will the time complexity be N^M or M^N ?

    • @chase.2595
      @chase.2595 Рік тому

      i think m^n
      m choices in n rec calls right?

  • @ganeshkamath89
    @ganeshkamath89 2 роки тому +2

    I have 1questions:
    1) For Java you are just checking 1 condition in the loop
    if (color[it] == col) return false;
    2) Whereas in C++ you are checking multiple conditions:
    if (k != node && graph[k][node] == 1 && color[k] == col)
    Is this because you have done some preprocessing in Java to have graph as an adjacency list but are passing the graph itself in C++?

    • @SanthoshSunny21
      @SanthoshSunny21 2 роки тому +2

      In cpp he used adjacency Matrix nd in Java adjacency list
      In Matrix you will check if there is an edge with every other vertex (g[i][j]==1) but in adjacency list only edges are present so no need to check if there's an edge

    • @ganeshkamath89
      @ganeshkamath89 2 роки тому

      @@SanthoshSunny21 Thanks

  • @raviashwin1157
    @raviashwin1157 3 роки тому

    God level explanation🔥....really appreciate your efforts❤️....what was that song in the end??

  • @UECAshutoshKumar
    @UECAshutoshKumar Рік тому +1

    Thank you sir

  • @sathishkumar-dc9ce
    @sathishkumar-dc9ce 3 роки тому +2

    Great job anna.. luv from TN 😍

  • @dibyajyotibhuyan6111
    @dibyajyotibhuyan6111 2 роки тому +1

    Hello Everyone, Can any one tell me that why k!=node is required in issafe function in c++ code ?

    • @mohakhiphop
      @mohakhiphop 2 роки тому

      Code will work fine without that (k!=node) , as in the case when (k == node) , graph[k][node] will always be 0 i.e the node itself which obviously can't be neighbour of itself

  • @ankursharma6084
    @ankursharma6084 2 роки тому

    There is some issue in the time complexity.
    For all the m choices we are taking o(n) time to verify is safe property.
    So , Tc should be (m*n)^n.
    @take U forward can you please verify.

    • @SatyamKumar-rq3kr
      @SatyamKumar-rq3kr 2 роки тому

      Yes bro now even the god can't reject this complexity, interviewer kya hi kr lega BTW it's(m^n)*n checking is_safe function☠

    • @SatyamKumar-rq3kr
      @SatyamKumar-rq3kr 2 роки тому

      1 month ago WoW bro aap kafi aage chate ho hamesha🙂

  • @bhaveshkumar6842
    @bhaveshkumar6842 2 роки тому

    Thank you!

  • @kavyabanka4482
    @kavyabanka4482 Рік тому

    can someone tell me why we have taken G[node] in for loop for(int it:G[node]){
    //Here y we have taken G[node] i m stuck here please clarify my doubt someone.

  • @SunilSharma-mb2kf
    @SunilSharma-mb2kf 2 роки тому

    Hey strive, Is this optimal solution?

  • @anishraj66
    @anishraj66 Рік тому

    i think time complexity will be m^n since each fxn is calling m another fxn so... m*m*m*m*.....n times

  • @ritugoyak7238
    @ritugoyak7238 3 роки тому +1

    Thank you so much sirr

  • @kunalsurya1158
    @kunalsurya1158 Рік тому

    i think the time complexity would be M^N where m is color and N is node bcz the equation is T(n) = MT(n-1) + C

  • @sahilnegi2789
    @sahilnegi2789 3 роки тому

    Thanks bro for amazing content .

  • @peedahsrah
    @peedahsrah 3 роки тому +1

    thanks!

  • @ABHILASH6409
    @ABHILASH6409 Рік тому

    But what if the graph is disconnected?

  • @faisalazmi8953
    @faisalazmi8953 3 роки тому

    Understood, valuable content