es
Feedback
LeetCode, GeeksForGeeks Problem of the day solution

LeetCode, GeeksForGeeks Problem of the day solution

Ir al canal en Telegram

Complete daily challenges from LeetCode, GeeksForGeeks and redeem their rewards Channel link : https://t.me/leetcode_gfg_potd

Mostrar más
1 250
Suscriptores
+224 horas
+147 días
+2930 días
Archivo de publicaciones
GFG | Problem of the day :

class Solution { public: vector splitListToParts(ListNode* head, int k) { int size = 0; ListNode* temp = head; vector ans; while(temp!= NULL){ temp=temp->next; size++; } int total_parts=size/k; int extra_parts=size%k; while(k--){ int s=total_parts; if(extra_parts){ s++; extra_parts--; } if(s==0){ ans.push_back(NULL); continue; } ListNode* start=head; ListNode* prev=NULL; while(s-- && head!= NULL){ prev=head; head=head->next; } if(prev!= NULL) prev->next=NULL; ans.push_back(start); } return ans; } };

LeetCode | Daily challenge :

class Solution { public: //Function to find a Mother Vertex in the Graph. void dfs(int i,set&v2,vector&vis,vectoradj[]){ vis[i] = 1; v2.insert(i); for(auto adjNode : adj[i]){ if(v2.find(adjNode)==v2.end()) dfs(adjNode,v2,vis,adj); } } int findMotherVertex(int V, vectoradj[]) { // Code here vectorvis(V,0); for(int i=0;iv2; if(!vis[i]){ dfs(i,v2,vis,adj); } if(v2.size()==V) return i; } return -1; } };

GFG | Problem of the day :

class Solution { public: Node* copyRandomList(Node* head) { map m; int i=0; Node* ptr = head; while (ptr) { m[ptr] =new Node(ptr->val); ptr = ptr->next; } ptr = head; while (ptr) { m[ptr]->next = m[ptr->next]; m[ptr]->random = m[ptr->random]; ptr = ptr->next; } return m[head]; } };

LeetCode | Daily challenge :

class Solution { public: // Function to return the adjacency list for each vertex. vector> printGraph(int V, vector>edges) { vector> adj(V); for(int i=0;i

GFG | Problem of the day :

class Solution { public: bool hasCycle(ListNode *head) { ListNode * slow = head; ListNode * fast = head; while(fast != NULL && fast->next != NULL){ slow = slow->next; fast = fast->next->next; if(slow==fast){ return true; } } return false; } };

LeetCode | Daily challenge :

class Solution{ public: void dfs(int row, int col, vector>& mat, vector>& vis, int n, int m){ vis[row][col] = 1; int ra[] = {-1, 0, 1, 0}; int rc[] = {0, 1, 0, -1}; for(int i=0;i<4;i++){ int r = row+ra[i]; int c = col + rc[i]; if(r>=0 && r=0 && c> fill(int n, int m, vector> mat) { vector> vis(n, vector(m, 0)); for(int i=0;i

GFG | Problem of the day :

class Solution { public: int solve (int m, int n,vector>&dp) { if(m==0 && n==0) return 1; if(m<0||n<0) return 0; if(dp[m][n]!=-1) return dp[m][n]; int up=solve(m-1,n,dp); int left=solve(m,n-1,dp); return dp[m][n]= up+left; } int uniquePaths(int m, int n) { vector>dp(m,vector(n,-1)); return solve(m-1,n-1,dp); } };

LeetCode | Daily challenge :

class Solution{ public: // Return True if the given trees are isomotphic. Else return False. bool isIsomorphic(Node *root1,Node *root2) { if (root1 == NULL && root2 == NULL) return true; if (!root1 || !root2) return false; if(root1->data!=root2->data) return false; bool leftIsomorphic = isIsomorphic(root1->left, root2->left) && isIsomorphic(root1->right, root2->right); bool mirrorIsomorphic = isIsomorphic(root1->left, root2->right) && isIsomorphic(root1->right, root2->left); return leftIsomorphic || mirrorIsomorphic; } };

GFG | Problem of the day :

class Solution { public: unordered_set st; int dp[51]; int solve(string& s, int index){ if(index>=s.size()){ return 0; } if(dp[index] != -1){ return dp[index]; } int len = INT_MAX; for(int i=1;i<=s.size();i++){ string str = s.substr(index, i); if(st.find(str) != st.end()){ len = min(len, solve(s, index+i)); } } len = min(len, 1+solve(s, index+1));//Skipping the char which may be the the probable extra char return dp[index] = len; } int minExtraChar(string s, vector& d) { for(int i=0;i

LeetCode | Daily challenge :

class Solution { public: int getCount(Node *root, int k) { int level=0; int count=0; queueq; q.push(root); while(!q.empty()){ int size=q.size(); level++; while(size>0){ Node* temp=q.front(); q.pop(); if(!temp->left && !temp->right){ if(level<=k){ count++; k=k-level; } } if(temp->left) q.push(temp->left); if(temp->right)q.push(temp->right); size--; } } return count; } };