CCCPaste

af1cfec515bb0

// N queens 

class Solution {
public:

    bool isSafe(int row , int col ,vector board , int n )
    {
        int checkr = row ;
        int checkc = col ;
        while( checkr >=0 && checkc>=0)
        {
            if(board[checkr][checkc]=='Q')
            {
                return false ;
            }
            checkr --; checkc --;    
        }
        int tc = col ;
        while(tc>=0)
        {
             if(board[row][tc]=='Q')
            {
                return false ;
            }
            tc--;
        }
        checkr = row ;
        checkc = col ;
        while( checkr =0)
        {
            if(board[checkr][checkc]=='Q')
            {
                return false ;
            }
            checkr ++; checkc --;    
        }
        return true ;
    }

    void solve(int col ,vector &board ,   vector> &answer , int n )
    {

        if (col == n )
        {
            answer.push_back(board) ;
            return ;
        }
       for(int row =0 ; row> solveNQueens(int n) {
        vector> answer ;
        vector board(n) ;
        string s(n , '.') ;
        for(int i = 0 ; i  v1 , vector v2 )
    {
        if (v1[1] == v2[1]) return v1[0]>& intervals) {
    sort(intervals.begin(), intervals.end(), compare);

    int i = 0 ;
    int j = 1 ;
    int c = 1 ;
    int n = intervals.size();

    while(j
#include 
using namespace std;

class Solution {
public:

    int solve(string s1, string s2, int i, int j, vector>& vec) {
        if (i == s1.length() || j == s2.length()) {
            return 0;
        }
        if (vec[i][j] != -1) {
            return vec[i][j];
        }
        int ans = 0;
        if (s1[i] == s2[j]) {
            ans = 1 + solve(s1, s2, i + 1, j + 1, vec);
        }
        else {
            ans = max(solve(s1, s2, i + 1, j, vec), solve(s1, s2, i, j + 1, vec));
        }
        return vec[i][j] = ans;
    }

    int longestCommonSubsequence(string text1, string text2) {
        int rows = text1.length();
        int cols = text2.length();
        vector> vec(rows, vector(cols, -1));

        return solve(text1, text2, 0, 0, vec);
    }
};

//eulers 

#include 
#include
#include


bool iscyclicBFS(int src,    unordered_map &visited,   unordered_map> adj){
     unordered_map parent;
    parent[src]=-1;
    visited[src]=1;
    queue q;
    q.push(src);
    while(!q.empty()){
        int front = q.front();
        q.pop();
        
        for(auto neighbour: adj[front]){
            if(visited[neighbour]==true && neighbour!=parent[front]){
                return true;
            }
            else if(!visited[neighbour]){
                q.push(neighbour);
                visited[neighbour]=1;
                parent[neighbour]=front;
            }
        }
    }
    return false;
}

bool iscyclicDFS(int node,int parent, unordered_map &visited, unordered_map> &adj){
    visited[node]=true;
    for(auto neighbour: adj[node]){
        if(!visited[neighbour]){
            bool cycledetected=iscyclicDFS(neighbour, node,visited,adj);
            if(cycledetected)
                return true;
        }
        else if(neighbour != parent){
           //cycle present
            return true;
        }
    }
 return false;
}

string cycleDetection (vector>& edges, int n, int m)
{
    // create adjacency list
    unordered_map> adj;
    for(int i=0;i visited;
    for(int i=0;i