MCPcopy Create free account

hub / github.com/devweekends/DW-Fellowship-DSA-Roadmap / functions

Functions315 in github.com/devweekends/DW-Fellowship-DSA-Roadmap

↓ 49 callersMethodpush
Level 1/Week 06/Stack/155. Min Stack/code.cpp:32
↓ 43 callersMethodtop
Level 1/Week 06/Stack/155. Min Stack/code.cpp:47
↓ 36 callersMethodpop
Level 1/Week 06/Stack/155. Min Stack/code.cpp:40
↓ 19 callersMethodfind
Find with path compression
Level 1/Week 12/Graph/684. Redundant Connection/code.cpp:50
↓ 4 callersFunctionhelper
🔸 Approach 3: Recursive Reverse Comparison
Common/Math/Palindrome/palindrome.cpp:27
↓ 1 callersFunctiondigitCount
Common/Math/Extract Digits/extract_digit.cpp:24
↓ 1 callersFunctionevenDigits
--------------------------------------------------- 🔸 Approach 1: Brute Force using Modulo - Loop through each digit using modulo - Check if digit !=
Common/Math/Count Digits/count.cpp:11
↓ 1 callersFunctiongcdBruteForce
🔸 Approach 1: Brute Force Method Loop from 1 to min(n1, n2) and check for all numbers that divide both. Track the largest such number. 🧠 Logic: - Sta
Common/Math/GCD_HCF_Calculation/gcd.cpp:31
↓ 1 callersFunctiongcdEuclidean
🔸 Approach 2: Euclidean Algorithm Efficient method using modulo (%). Key Property: gcd(a, b) = gcd(b, a % b) Repeat until one number becomes 0. The o
Common/Math/GCD_HCF_Calculation/gcd.cpp:52
↓ 1 callersFunctionisPalindromeArrayRecursive
🔸 Approach 3: Recursive Check
Common/Math/Palindrome/palindrome.cpp:63
↓ 1 callersFunctionprintAllDivisorsBrute
🔸 Approach 1: Brute Force Loop through all numbers from 1 to n and check if they divide n
Common/Math/Print Divisors/print_all_divisors.cpp:16
↓ 1 callersFunctionprintAllDivisorsOptimized
🔸 Approach 2: Optimized Square Root Approach Divisors occur in pairs (i, n/i), and we only need to loop till sqrt(n)
Common/Math/Print Divisors/print_all_divisors.cpp:28
↓ 1 callersFunctionprintAllDivisorsRecursive
Common/Math/Print Divisors/print_all_divisors.cpp:69
↓ 1 callersFunctionprintAllDivisorsRecursiveHelper
🔸 Approach 4: Recursive Method Recursively check and print divisors from 1 to n
Common/Math/Print Divisors/print_all_divisors.cpp:63
↓ 1 callersFunctionprintAllDivisorsSorted
🔸 Approach 3: Using a Vector + Sorting Collect divisors in a vector and sort them for ordered output
Common/Math/Print Divisors/print_all_divisors.cpp:43
↓ 1 callersFunctionreverseNumberForLoop
🔸 Approach 4: For Loop (Alternative Math)
Common/Math/Reverse Number/reverse_number.cpp:41
↓ 1 callersFunctionreverseNumberLoop
🔸 Approach 1: While Loop (Mathematical)
Common/Math/Reverse Number/reverse_number.cpp:17
↓ 1 callersFunctionreverseNumberRecursiveHelper
🔸 Approach 2: Recursion
Common/Math/Reverse Number/reverse_number.cpp:28
↓ 1 callersFunctionreverseNumberString
🔸 Approach 3: String Reversal
Common/Math/Reverse Number/reverse_number.cpp:34
↓ 1 callersFunctionsumOfPowers
------------------------------------------ 🔹 Approach 3: Recursive - Calculates sum of digits raised to total digit count - Uses recursion for summati
Common/Math/Armstrog Number/Armstrong.cpp:55
↓ 1 callersFunctiontotalDigits
--------------------------------------------------- 🔸 Approach 2: Count Total Digits Using log10 - Just counts total digits, not the ones that divide
Common/Math/Count Digits/count.cpp:34
MethodKthLargest
Level 1/Week 07/K way merge [Heaps]/703. Kth Largest Element in a Stream/code.cpp:27
MethodMedianFinder
Level 1/Week 07/K way merge [Heaps]/Find Median from Data Stream/code.cpp:21
MethodMinStack
Level 1/Week 06/Stack/155. Min Stack/code.cpp:30
MethodNode
Level 1/Week 12/Graph/133. Clone Graph/code.cpp:25
Methodadd
Level 1/Week 07/K way merge [Heaps]/703. Kth Largest Element in a Stream/code.cpp:35
MethodaddNum
Level 1/Week 07/K way merge [Heaps]/Find Median from Data Stream/code.cpp:22
MethodaddTwoNumbers
Level 1/Week 03/LinkedList/2. Add Two Numbers/code.cpp:19
MethodaddTwoNumbers
Level 1/Week 10/Recursion/2. Add Two Numbers/code.cpp:29
MethodaddTwoNumbers
Level 1/Week 10/Recursion/445. Add Two Numbers II/code.cpp:28
MethodaddTwoNumbersHelper
Level 1/Week 10/Recursion/2. Add Two Numbers/code.cpp:34
MethodaddTwoNumbersHelper
Helper function to add two reversed lists
Level 1/Week 10/Recursion/445. Add Two Numbers II/code.cpp:55
Methodbacktrack
Level 0/10 Backtracking/07. 0017-letter-combinations-of-a-phone-number/code.cpp:8
Methodbacktrack
Level 0/10 Backtracking/08. 0051-n-queens/code.cpp:31
Methodbacktrack
Level 0/10 Backtracking/03. 040-combination-sum-ii/code.cpp:5
Methodbacktrack
Level 0/10 Backtracking/04. 046-permutations/code.cpp:5
Methodbacktrack
Level 0/10 Backtracking/06. 0131-palindrome-partitioning/code.cpp:17
Methodbacktrack
Level 0/10 Backtracking/02. 039-combination-sum/code.cpp:5
Methodbacktrack
Level 0/10 Backtracking/05. 090-subsets-ii/code.cpp:5
Methodbacktrack
Level 0/10 Backtracking/01. 078-subsets/code.cpp:5
Methodbacktrack
Level 1/Week 10/Backtracking/51. N-Queens/code.cpp:36
Methodbacktrack
Level 1/Week 10/Backtracking/39. Combination Sum/code.cpp:33
Methodbacktrack
Level 1/Week 10/Backtracking/78. Subsets/code.cpp:25
Methodbacktrack
Level 1/Week 10/Backtracking/17. Letter Combinations of a Phone Number/code.cpp:40
Methodbacktrack
Level 1/Week 10/Backtracking/90. Subsets II/code.cpp:34
Methodbacktrack
Level 1/Week 10/Backtracking/131. Palindrome Partitioning/code.cpp:31
Methodbacktrack
Level 1/Week 10/Backtracking/40. Combination Sum II/code.cpp:32
Methodbacktrack
Level 1/Week 10/Backtracking/79. Word Search/code.cpp:39
Methodbacktrack
Level 1/Week 10/Backtracking/46. Permutations/code.cpp:31
MethodbuildTree
Level 0/8 Trees/09. 0105-construct-binary-tree-from-preorder-and-inorder-traversal/code.cpp:44
MethodbuildTree
Level 1/Week 04/Trees/105. Construct Binary Tree from Preorder and Inorder Traversal/code.cpp:61
MethodbuildTreeHelper
Level 0/8 Trees/09. 0105-construct-binary-tree-from-preorder-and-inorder-traversal/code.cpp:18
MethodcalculateHeight
Helper function to calculate the height of a subtree and update the maximum diameter found so far
Level 0/8 Trees/01. 0543-diameter-of-binary-tree/code.cpp:19
MethodcalculateTotalHours
Helper to calculate total hours needed at a given eating speed
Level 0/9 Modified Binary Search/08. 0907-koko-eating-bananas/0907-koko-eating-bananas.cpp:12
Methodcalculatehours
Level 1/Week 05/Modified Binary Search/875. Koko Eating Bananas/code.cpp:51
MethodcanCompleteCircuit
Level 1/Week 09/Greedy/134. Gas Station/code.cpp:24
MethodcanFinish
Level 1/Week 12/Graph/207. Course Schedule/code.cpp:21
Methodchange
Main function - using the most optimal approach
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:94
MethodchangeMemo
Approach 2: Memoization (Top-Down DP) Time: O(amount * coins), Space: O(amount * coins) - memoization table
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:34
MethodchangeMemoHelper
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:40
MethodchangeOptimized
Approach 4: Space Optimization Time: O(amount * coins), Space: O(amount) - 1D DP array
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:81
MethodchangeRecursion
Approach 1: Recursion (Brute Force) Time: O(2^(amount+coins)), Space: O(amount) - recursion stack
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:16
MethodchangeRecursionHelper
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:21
MethodchangeTabulation
Approach 3: Tabulation (Bottom-Up DP) Time: O(amount * coins), Space: O(amount * coins) - 2D DP array
Level 1/Week 11/Dynamic Programming/518. Coin Change II/code.cpp:56
MethodcharacterReplacement
Level 1/Week 02/Sliding windows/424. Longest Repeating Character Replacement/code.cpp:22
MethodcheckInclusion
Level 1/Week 02/Sliding windows/567. Permutation in String/code.cpp:23
MethodcheckValidString
Level 1/Week 09/Greedy/678. Valid Parenthesis String/code.cpp:26
Methodcheckheight
Level 1/Week 04/Trees/110. Balanced Binary Tree/code.cpp:32
MethodclimbStairs
Main function - using the most optimal approach
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:65
MethodclimbStairsMemo
Approach 2: Memoization (Top-Down DP) Time: O(n), Space: O(n) - memoization table + recursion stack
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:24
MethodclimbStairsMemoHelper
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:30
MethodclimbStairsOptimized
Approach 4: Space Optimization Time: O(n), Space: O(1) - only two variables
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:53
MethodclimbStairsRecursion
Approach 1: Recursion (Brute Force) Time: O(2^n), Space: O(n) - recursion stack
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:17
MethodclimbStairsTabulation
Approach 3: Tabulation (Bottom-Up DP) Time: O(n), Space: O(n) - DP array
Level 1/Week 11/Dynamic Programming/70. Climbing Stairs/code.cpp:40
MethodcloneGraph
Level 1/Week 12/Graph/133. Clone Graph/code.cpp:41
MethodcoinChange
Main function - using the most optimal approach
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:90
MethodcoinChangeMemo
Approach 2: Memoization (Top-Down DP) Time: O(S * n), Space: O(S) - memoization table + recursion stack
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:41
MethodcoinChangeMemoHelper
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:48
MethodcoinChangeOptimized
Approach 4: Space Optimization Time: O(S * n), Space: O(S) - already optimal for this problem
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:83
MethodcoinChangeRecursion
Approach 1: Recursion (Brute Force) Time: O(S^n) where S is amount, Space: O(S) - recursion stack
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:18
MethodcoinChangeRecursionHelper
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:24
MethodcoinChangeTabulation
Approach 3: Tabulation (Bottom-Up DP) Time: O(S * n), Space: O(S) - DP array
Level 1/Week 11/Dynamic Programming/322. Coin Change/code.cpp:67
MethodcombinationSum
Level 0/10 Backtracking/02. 039-combination-sum/code.cpp:31
MethodcombinationSum
Level 1/Week 10/Backtracking/39. Combination Sum/code.cpp:21
MethodcombinationSum2
Level 0/10 Backtracking/03. 040-combination-sum-ii/code.cpp:36
MethodcombinationSum2
Level 1/Week 10/Backtracking/40. Combination Sum II/code.cpp:20
MethodcontainsDuplicate
Level 1/Week 01/Arrays & Hashing/217. Contains Duplicate/code.cpp:12
MethodcontainsNearbyDuplicate
Level 1/Week 02/Sliding windows/219. Contains Duplicate II/code.cpp:19
MethodcopyRandomList
Level 1/Week 03/LinkedList/138. Copy List with Random Pointer/code.cpp:41
MethodcountPairs
Level 1/Week 02/2 pointers/2824. Count Pairs Whose Sum is Less than Target/code.cpp:19
MethodcountStudents
Level 1/Week 06/Queue/1700. Number of Students Unable to Eat Lunch/code.cpp:19
MethoddailyTemperatures
Level 1/Week 06/Stack/739. Daily Temperatures/code.cpp:28
MethoddeckRevealedIncreasing
Level 1/Week 06/Queue/950. Reveal Cards In Increasing Order/code.cpp:21
Methoddeserialize
Decodes your encoded data to tree.
Level 0/8 Trees/11. 0297-serialize-and-deserialize-binary-tree/code.cpp:60
MethoddeserializeHelper
Helper function to deserialize tree using preorder traversal
Level 0/8 Trees/11. 0297-serialize-and-deserialize-binary-tree/code.cpp:29
Methoddfs
DFS approach: traverse right first, then left
Level 0/8 Trees/05. 0199-binary-tree-right-side-view/code.cpp:16
Methoddfs
DFS helper function to count good nodes
Level 0/8 Trees/06. 1448-count-good-nodes-in-binary-tree/code.cpp:16
Methoddfs
Level 1/Week 12/Graph/417. Pacific Atlantic Water Flow/code.cpp:63
Methoddfs
Level 1/Week 12/Graph/130. Surrounded Regions/code.cpp:60
Methoddfs
Level 1/Week 12/Graph/200. Number of Islands/code.cpp:44
next →1–100 of 315, ranked by callers