ch
Feedback
LeetCode, GeeksForGeeks Problem of the day solution

LeetCode, GeeksForGeeks Problem of the day solution

前往频道在 Telegram

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

显示更多
1 250
订阅者
+224 小时
+147
+2930
帖子存档
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; } };