{"id":21315507,"url":"https://github.com/rajsoni03/competitive-programming-training","last_synced_at":"2025-07-12T01:31:35.354Z","repository":{"id":38416095,"uuid":"505026450","full_name":"Rajsoni03/Competitive-Programming-Training","owner":"Rajsoni03","description":"Competitive Programming Training including Data Structure and Algorithms","archived":false,"fork":false,"pushed_at":"2023-06-05T16:33:45.000Z","size":98966,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T12:11:26.720Z","etag":null,"topics":["competitive-programming","cplusplus","data-structures","stl-algorithms","stl-containers"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rajsoni03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-19T06:07:25.000Z","updated_at":"2024-08-27T14:59:33.000Z","dependencies_parsed_at":"2024-11-21T18:34:39.541Z","dependency_job_id":null,"html_url":"https://github.com/Rajsoni03/Competitive-Programming-Training","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rajsoni03/Competitive-Programming-Training","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCompetitive-Programming-Training","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCompetitive-Programming-Training/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCompetitive-Programming-Training/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCompetitive-Programming-Training/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rajsoni03","download_url":"https://codeload.github.com/Rajsoni03/Competitive-Programming-Training/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rajsoni03%2FCompetitive-Programming-Training/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264923080,"owners_count":23683716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["competitive-programming","cplusplus","data-structures","stl-algorithms","stl-containers"],"created_at":"2024-11-21T18:21:02.287Z","updated_at":"2025-07-12T01:31:30.314Z","avatar_url":"https://github.com/Rajsoni03.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Competitive-Programming-Training\n\n`Prerequisite` - Basic knowledge of C++ ([C++ Training Codes](https://github.com/Rajsoni03/CPlusPlus-Training)) \n\n`CPP Docs` - [Link](https://www.cplusplus.com/)\n\n- DSA Sheets\n\t- [Love Babbar](https://www.geeksforgeeks.org/dsa-sheet-by-love-babbar/)\n\t- [Striver](https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/)\n\t- [Fraz](https://www.codingninjas.com/codestudio/problem-lists/mohammad-fraz-dsa-sheet-problems)\n\n\u003chr\u003e\n\n## Day 1 - Array ([PDF](/PDF_Notes/Day-1.pdf))\n\n- Asymptotic Notation\n- Big O\n- Time Complexity\n- Space Complexity \n- Basic Notations\n\t- \u003cb\u003eO(1)\u003c/b\u003e - Constant\n\t- \u003cb\u003eO(log N)\u003c/b\u003e - Logarithmic\n\t- \u003cb\u003eO(N)\u003c/b\u003e - Linear\n\t- \u003cb\u003eO(N log N)\u003c/b\u003e - Linearithmic\n\t- \u003cb\u003eO(N\u003csup\u003e2\u003c/sup\u003e)\u003c/b\u003e - Quadratic\n\t- \u003cb\u003eO(N\u003csup\u003e3\u003c/sup\u003e)\u003c/b\u003e - Cubic\n\t- \u003cb\u003eO(2\u003csup\u003eN\u003c/sup\u003e)\u003c/b\u003e - Exponential \n\t- \u003cb\u003eO(N\u003csup\u003eN\u003c/sup\u003e)\u003c/b\u003e - Exponential\n- Basics of Array\n- Reverse the Array\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ |:--------:| --------:|\n|  1   | Reverse the array | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/reverse-an-array/0) | [solution](Solutions/sol_001.md) |\n|  2   | Reverse String | [Leetcode](https://leetcode.com/problems/reverse-string/) | [solution](Solutions/sol_002.md) |\n|  3   | Find the maximum and minimum element in an array | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/find-minimum-and-maximum-element-in-an-array4428/1) | [solution](Solutions/sol_003.md) |\n|  4   | Complete Sum | [CodeStudio](https://www.codingninjas.com/codestudio/problems/complete-sum_3161880) | [solution](Solutions/sol_004.md) |\n \n\n\n## Day 2 - STL ([PDF](/PDF_Notes/Day-2.pdf))\n\n- Standard Template Library (STL)\n\t- Container\n\t\t- `array`\n\t\t- `vector`\n\t\t- `list`\n\t\t- `stack`\n\t\t- `queue`\n\t\t- `set`\n\t\t- `map`\n\t- Iterator\n\t\t- `begin()`\n\t\t- `end()`\n\t\t- `rbegin()`\n\t\t- `rend()`\n\t- Algorithm\n\t\t- `swap()`\n\t\t- `min()` \u0026 `max()`\n\t\t- `min_element()` \u0026 `max_element()`\n\t\t- `minmax()` \u0026 `minmax_element()` \n\t\t- `sort()`\n\t\t- `find()`\n\t\t- `search()`\n- Implement template array class \n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ |:--------:| --------:|\n|  5   | Final Value of Variable After Performing Operations | [Leetcode](https://leetcode.com/problems/final-value-of-variable-after-performing-operations/) | [solution](Solutions/sol_005.md) |\n|  6   | Maximum Number of Words Found in Sentences | [Leetcode](https://leetcode.com/problems/maximum-number-of-words-found-in-sentences/) | [solution](Solutions/sol_006.md) |\n|  7   | Shuffle String | [Leetcode](https://leetcode.com/problems/shuffle-string/) | [solution](Solutions/sol_007.md) |\n|  8   | Check If It Is a Straight Line | [Leetcode](https://leetcode.com/problems/check-if-it-is-a-straight-line/) | [solution](Solutions/sol_008.md) |\n\n\n## Day 3 - Vector ([PDF](/PDF_Notes/Day-3.pdf))\n\n- STL vector\n\t- Constructor\n\t\t- `vector\u003ctype\u003e v;`\n\t\t- `vector\u003ctype\u003e v(size);`\n\t\t- `vector\u003ctype\u003e v(size, fill_value);`\n\t- Methods\n\t\t- Iterators\n\t\t\t- begin()\n\t\t\t- end()\n\t\t- Capacity\n\t\t\t- size()\n\t\t\t- capacity()\n\t\t\t- empty()\n\t\t- Modifiers and Access\n\t\t\t- operator[]\n\t\t\t- push_back()\n\t\t\t- pop_back()\n\t\t\t- insert()\n\t\t\t- swap()\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  9   | Value equal to index value | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/value-equal-to-index-value1330/1) | [solution](Solutions/sol_009.md) |\n|  10  | Sort an array of 0s, 1s and 2s | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/sort-an-array-of-0s-1s-and-2s4231/1#) | [solution](Solutions/sol_010.md) |\n|  11  | Cyclically rotate an array by one | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/cyclically-rotate-an-array-by-one2614/1/) | [solution](Solutions/sol_011.md) |\n|  12  | Palindromic Array | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/palindromic-array-1587115620/1) | [solution](Solutions/sol_012.md) |\n\n\n## Day 4 - Pair ([PDF](/PDF_Notes/Day-4.pdf))\n\n- Implement template Pair class\n- STL pair\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  13  | Move all negative elements to end | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/move-all-negative-elements-to-end1813/1) | [solution](Solutions/sol_013.md) |\n|  14   | Count Items Matching a Rule | [LeetCode](https://leetcode.com/problems/count-items-matching-a-rule/) | [solution](Solutions/sol_014.md) |\n|  15   | Kth Missing Positive Number | [LeetCode](https://leetcode.com/problems/kth-missing-positive-number/) | [solution](Solutions/sol_015.md) |\n|  16   | Plus One | [LeetCode](https://leetcode.com/problems/plus-one/) | [solution](Solutions/sol_016.md) |\n\n\n## Day 5 - String \u0026 Numbers ([PDF](/PDF_Notes/Day-5.pdf))\n\n- Reverse string\n- Reverse integer number\n- String palindrome\n- Integer palindrome\n- Fibonacci series with recursion\n- Fibonacci series with loop\n\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  17   | Number of Good Pairs | [LeetCode](https://leetcode.com/problems/number-of-good-pairs/) | [solution](Solutions/sol_017.md) |\n|  18   | How Many Numbers Are Smaller Than the Current Number | [LeetCode](https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/) | [solution](Solutions/sol_018.md) |\n|  19   | Palindrome Number | [LeetCode](https://leetcode.com/problems/palindrome-number/) | [solution](Solutions/sol_019.md) |\n|  20   | Fibonacci Number | [LeetCode](https://leetcode.com/problems/fibonacci-number/) | [solution](Solutions/sol_020.md) |\n|  21   | Reverse Integer | [LeetCode](https://leetcode.com/problems/reverse-integer/) | [solution](Solutions/sol_021.md) |\n\n\n## Day 6 - Bit Manipulation ([PDF](/PDF_Notes/Day-6.pdf))\n\n- Bitwise Operators\n\t- `|` Bitwise OR operator \n\t\t- used to set bit to 1\n\t- `\u0026` Bitwise AND operator \n\t\t- used to set bit to 0\n\t\t- used to get n\u003csup\u003eth\u003c/sup\u003e bit\n\t- `~` Bitwise NOT operator\n\t\t- used to inverts the bits \n\t- `\u003c\u003c` Bitwise left shift operator\n\t- `\u003e\u003e` Bitwise right shift operator\n\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  22  | Number of 1 Bits | [Leetcode](https://leetcode.com/problems/number-of-1-bits/) [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/set-bits0143/1) | [solution](Solutions/sol_022.md) |\n|  23  | Number of Steps to Reduce a Number to Zero | [LeetCode](https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/) | [solution](Solutions/sol_023.md) |\n|  24  | Minimum Bit Flips to Convert Number | [LeetCode](https://leetcode.com/problems/minimum-bit-flips-to-convert-number/) | [solution](Solutions/sol_024.md) |\n|  25  | Hamming Distance | [LeetCode](https://leetcode.com/problems/hamming-distance/) | [solution](Solutions/sol_025.md) |\n|  26  | Complement of Base 10 Integer | [LeetCode](https://leetcode.com/problems/complement-of-base-10-integer/) | [solution](Solutions/sol_026.md) |\n|  27  | Binary Gap | [LeetCode](https://leetcode.com/problems/binary-gap/) | [solution](Solutions/sol_027.md) |\n|  28  | Reverse Bits | [LeetCode](https://leetcode.com/problems/reverse-bits/) | [solution](Solutions/sol_028.md) |\n\n\n## Day 7 - Bit Manipulation ([PDF](/PDF_Notes/Day-7.pdf))\n\n- `^` XOR Operator\n\t- data encryption\n\t- data decryption\n- find missing number from 1 - n range\n- find non repeating number\n- add 2 numbers without arithmetic operators\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  29  | Missing Number | [LeetCode](https://leetcode.com/problems/missing-number/) | [solution](Solutions/sol_029.md) |\n|  30  | Find the Duplicate Number | [LeetCode](https://leetcode.com/problems/find-the-duplicate-number/) | [solution](Solutions/sol_030.md) |\n|  31  | XOR Operation in an Array | [LeetCode](https://leetcode.com/problems/xor-operation-in-an-array/) | [solution](Solutions/sol_031.md) |\n|  32  | Decode XORed Array | [LeetCode](https://leetcode.com/problems/decode-xored-array/) | [solution](Solutions/sol_032.md) |\n|  33  | Single Number | [LeetCode](https://leetcode.com/problems/single-number/) | [solution](Solutions/sol_033.md) |\n|  34  | Counting Bits | [LeetCode](https://leetcode.com/problems/counting-bits/) | [solution](Solutions/sol_034.md) |\n|  35  | Count total set bits | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/count-total-set-bits-1587115620/1) | [solution](Solutions/sol_035.md) |\n|  36  | Power of Two | [LeetCode](https://leetcode.com/problems/counting-bits/) / [GeeksForGeeks](https://www.geeksforgeeks.org/program-to-find-whether-a-given-number-is-power-of-2/) | [solution](Solutions/sol_036.md) |\n|  37  | Bit Difference | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/bit-difference-1587115620/1#) | [solution](Solutions/sol_037.md) |\n\n\n## Day 8 - Bit Manipulation ([PDF](/PDF_Notes/Day-8.pdf))\n\n- `(num \u0026 1) == 0` - Check if the integer is even\n- `x = x \u0026 (1\u003c\u003cn)` - Get n-th bit\n- `x = x | (1\u003c\u003cn)` - Set n-th bit\n- `x = x \u0026 ~(1\u003c\u003cn)` - Unset n-th bit\n- `x = x ^ (1\u003c\u003cn)` - Toggle n-th bit\n- `y = x \u0026 (-x)` or `y = x \u0026 !(x-1)` - Get the rightmost 1's bit\n- `y = x \u0026 (x-1)` - Unset rightmost 1's bit\n- Find the two non-repeating elements in an array of repeating elements\n- swap numbers without temp variable\n```cpp\nint a = 10;\nint b = 20;\n\n// method 1 : using arithmatic operator\na = a + b;\nb = a - b;\na = a - b;\n\n// method 2 : using bitwise operator\na = a ^ b;\nb = a ^ b;\na = a ^ b;\n```\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  38  | Find the two non-repeating elements in an array of repeating elements | [LeetCode](https://leetcode.com/problems/single-number-iii/) / [GeeksForGeeks](how-many-numbers-are-smaller-than-the-current-numbertps://practice.geeksforgeeks.org/problems/finding-the-numbers0215/1) | [solution](Solutions/sol_038.md) |\n|  39  | Find position of set bit | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/find-position-of-set-bit3706/1) | [solution](Solutions/sol_039.md) |\n|  40  | Set all the bits in given range of a number | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/set-all-the-bits-in-given-range-of-a-number4538/1) | [solution](Solutions/sol_040.md) |\n\n\n\n## Day 9 - Sorting Algorithms ([PDF](/PDF_Notes/Day-9.pdf))\n\n- Sorting\n\t- Time Complexity\n\t- Space Complexity\n\t- Stablity\n\t- Recursion / Iterative\n- Comparision Function\n- Swap Function\n- Selection Sort\n\t- Time - O(N\u003csup\u003e2\u003c/sup\u003e)\n\t- Space - O(1)\n\t- Non Stable\n\t- Iterative\n\t- Inplace \n```cpp\nvoid selectionSort(int arr[], int n){\n\tint min_value, min_index;\n\n\tfor (int i = 0; i \u003c n-1; i++){  \n\t\tmin_value = arr[i];\n\t\tmin_index = i;            \n\n\t\tfor (int j = i+1; j \u003c n; j++){\n\t\t\tif (arr[j] \u003e min_value){\n\t\t\t\tmin_value = arr[j];\n\t\t\t\tmin_index = j;\n\t\t\t}\n\t\t}\n\t\tswap(arr[i], arr[min_index]);\n\t}\n}\n```\n\n## Day 10 - Sorting Algorithms ([PDF](/PDF_Notes/Day-10.pdf))\n\n- Bubble Sort\n\t- Time - O(N\u003csup\u003e2\u003c/sup\u003e)\n\t- Space - O(1)\n\t- Stable\n\t- Iterative\n\t- Inplace \n```cpp\nvoid bubbleSort(int arr[], int n){\n\tfor (int i = 0; i \u003c n-1; i++){\n\t\tbool flag = true;\n\t\tfor (int j = 0; j \u003c n-1; j++){\n\t\t\tif (arr[j] \u003e arr[j+1]){\n\t\t\t\tswap(arr[j],arr[j+1]);\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\tif (flag) break;\n\t}\n}\n```\n- Insertion Sort\n\t- Time - O(N\u003csup\u003e2\u003c/sup\u003e)\n\t- Space - O(1)\n\t- Stable\n\t- Iterative\n\t- Inplace \n```cpp\nvoid insertionSort(int arr[], int n){\n\tint val, j;\n\n\tfor (int i = 1; i \u003c n; i++){\n\t\tval = arr[i];\n\t\tj = i;\n\t\twhile(j\u003e0 \u0026\u0026 arr[j-1] \u003e val){\n\t\t\tarr[j] = arr[j-1];\n\t\t\tj--;\n\t\t}\n\t\tarr[j] = val;\n\t}\n}\n```\n\n## Day 11 - Sorting Algorithms ([PDF](/PDF_Notes/Day-11.pdf))\n\n- Merge 2 Sorted Array\n- Merge Sort\n\t- Time - O(N log N)\n\t- Space - O(n)\n\t- Stable\n\t- Recursive\n\t- Divide and conquer\n```cpp\nvoid mergeSort(int arr[], int n){\n\tif (n \u003c 2) return;\n\tint mid = n/2;\n\tint left[mid];\n\tint right[n - mid];\n\tfor (int i = 0; i \u003c mid; i++){\n\t\tleft[i] = arr[i];\n\t}\n\tfor (int i = mid; i \u003c n; i++){\n\t\tright[i-mid] = arr[i];\n\t}\n\tmergeSort(left, mid);\n\tmergeSort(right, n-mid);\n\tmargeArray(left, right, arr, mid, n-mid);\n}\n```\n\n## Day 12 - Sorting Algorithms ([PDF](/PDF_Notes/Day-12.pdf))\n\n- Quick Sort\n\t- Time - Avg. - O(N log N), Worse - O(N\u003csup\u003e2\u003c/sup\u003e)\n\t- Space - O(n)\n\t- Stable\n\t- Recursive\n\t- Divide and conquer\n\t\n```cpp\nint partition(int arr[], int start, int end){\n\tint pivot = arr[end];\n\tint j = start;\n\tfor (int i = start; i \u003c end; i++){\n\t\tif (arr[i] \u003c= pivot){\n\t\t\tswap(arr[i], arr[j]);\n\t\t\tj++;\n\t\t}\n\t}\n\tswap(arr[end], arr[j]);\n\treturn j;\n}\n\nvoid quickSort(int arr[], int start, int end){\n\tif (start \u003e= end) return;               // base condition\n\tint pivot = partition(arr, start, end);\n\tquickSort(arr, start, pivot-1);         // left arr\n\tquickSort(arr, pivot+1, end);           // right arr\n}\n```\n\n\n## Day 13 - Linked List ([PDF](/PDF_Notes/Day-13.pdf))\n\n- Implement Singly LinkedList\n- Implement Node Class/Struct\n- Implement functions\n\t- `push_front()`\n\t- `push_back()`\n\t- `display()`\n\t- `size()`\n\t- `last()`\n\n```cpp\nclass Node{\npublic:\n\tint data;\n\tNode* next;\n\tNode(int data = 0, Node* next = nullptr) : data(data), next(next){}\n}\n```\n\n## Day 14 - Linked List ([PDF](/PDF_Notes/Day-14.pdf))\n\n- Implement Functions\n\t- `pop_front()`\n\t- `pop_back()`\n\t- `search()`\n\t- `at()`\n\n## Day 15 - Linked List ([PDF](/PDF_Notes/Day-15.pdf))\n\n- insert array element to list at back in O(N) time\n- find mid element \n\t- by using length (2 iteration)\n\t- by using 2 (slow \u0026 fast) pointers (single iteration)\n- find ith element from last\t\n\t- by using length (2 iteration)\n\t- by using 2 (slow \u0026 fast) pointers (single iteration)\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  41  | Middle of the Linked List | [LeetCode](https://leetcode.com/problems/middle-of-the-linked-list) | [solution](Solutions/sol_041.md) |\n|  42  | Convert Binary Number in a Linked List to Integer | [LeetCode](https://leetcode.com/problems/convert-binary-number-in-a-linked-list-to-integer) | [solution](Solutions/sol_042.md) |\n|  43  | Delete Node in a Linked List | [LeetCode](https://leetcode.com/problems/delete-node-in-a-linked-list/) | [solution](Solutions/sol_043.md) |\n|  44  | Remove Duplicates from Sorted List | [LeetCode](https://leetcode.com/problems/remove-duplicates-from-sorted-list/) | [solution](Solutions/sol_044.md) |\n\n\n## Day 16 - Linked List ([PDF](/PDF_Notes/Day-16.pdf))\n\n- Reverse a Linked List\n\t- by creating new list\n\t- by stack\n\t- by 3 pointers \n\t- by push front same node\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  45  | Remove Linked List Elements | [LeetCode](https://leetcode.com/problems/remove-linked-list-elements/) | [solution](Solutions/sol_045.md) |\n|  46  | Reverse Linked List | [LeetCode](https://leetcode.com/problems/reverse-linked-list) | [solution](Solutions/sol_046.md) |\n|  47  | Reverse Linked List II | [LeetCode](https://leetcode.com/problems/reverse-linked-list-ii/) | [solution](Solutions/sol_047.md) |\n\n\n## Day 17 - Linked List ([PDF](/PDF_Notes/Day-17.pdf))\n\n- Loop Detection \n\t- using map / set\n\t- is cycle found\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  48  | Linked List Cycle | [LeetCode](https://leetcode.com/problems/linked-list-cycle/) | [solution](Solutions/sol_048.md) |\n\n\n## Day 18 - Linked List ([PDF](/PDF_Notes/Day-18.pdf))\n\n- Loop Detection \n\t- return cycle node\n\t- remove cycle\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  49  | Linked List Cycle II | [LeetCode](https://leetcode.com/problems/linked-list-cycle-ii/) | [solution](Solutions/sol_049.md) |\n\n\n## Day 19 - Linked List ([PDF](/PDF_Notes/Day-18.pdf))\n\n- Check Palindrome in Linked List\n- Reorder Linked List\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  50  | Palindrome Linked List | [LeetCode](https://leetcode.com/problems/palindrome-linked-list/) | [solution](Solutions/sol_050.md) |\n|  51  | Reorder List | [LeetCode](https://leetcode.com/problems/reorder-list/) | [solution](Solutions/sol_051.md) |\n\n\n## Day 20 - Linked List ([PDF](/PDF_Notes/Day-20.pdf))\n\n- Merge Two Sorted Lists\n- Add Two Numbers\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  52  | Merge Two Sorted Lists | [LeetCode](https://leetcode.com/problems/merge-two-sorted-lists/) | [solution](Solutions/sol_052.md) |\n|  53  | Add Two Numbers | [LeetCode](https://leetcode.com/problems/add-two-numbers/) | [solution](Solutions/sol_053.md) |\n\n\n## Day 21 - Stack ([PDF](/PDF_Notes/Day-21.pdf))\n\n- Stack Interface\n\t- `push()`\n\t- `pop()`\n\t- `top()`\n\t- `size()`\n\t- `empty()`\n- Stack Implementation\n\t- array based stack\n\t- linked list based stack\n- Template Implementation of stack\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  54  | Implement Stack using Array | [Work@Tech](https://workat.tech/problem-solving/practice/implement-stack-array) | [solution](Solutions/sol_054.md) |\n|  55  | Implement Stack using Linked List | [Work@Tech](https://workat.tech/problem-solving/practice/implement-stack-linked-list) | [solution](Solutions/sol_055.md) |\n|  56  | Valid Parentheses | [LeetCode](https://leetcode.com/problems/valid-parentheses/), [Work@Tech](https://workat.tech/problem-solving/practice/balanced-parentheses) | [solution](Solutions/sol_056.md) |\n\n\n## Day 22 - Queue ([PDF](/PDF_Notes/Day-22.pdf))\n\n- Queue Interface\n\t- `push()`\n\t- `pop()`\n\t- `top()`\n\t- `size()`\n\t- `empty()`\n- Queue Implementation\n\t- array based queue\n\t- linked list based queue\n- Template Implementation of queue\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  57  | Implement Queue using Array | [Work@Tech](https://workat.tech/problem-solving/practice/implement-queue-array) | [solution](Solutions/sol_057.md) |\n|  58  | Implement Queue using Linked List | [Work@Tech](https://workat.tech/problem-solving/practice/implement-queue-linked-list) | [solution](Solutions/sol_058.md) |\n|  59  | Implement Queue using Stacks | [LeetCode](https://leetcode.com/problems/implement-queue-using-stacks/), [Work@Tech](https://workat.tech/problem-solving/practice/implement-queue-using-stacks) | [solution](Solutions/sol_059.md) |\n|  60  | Implement Stack using Queues | [LeetCode](https://leetcode.com/problems/implement-stack-using-queues/), [Work@Tech](https://workat.tech/problem-solving/practice/implement-stack-using-queues) | [solution](Solutions/sol_060.md) |\n\n\n## Day 23 - Stack \u0026 Queue Problems ([PDF](/PDF_Notes/Day-23.pdf))\n\n- Min Stack\n- Next Greater Element\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  61  | Implement Min Stack | [LeetCode](https://leetcode.com/problems/min-stack/), [Work@Tech](https://workat.tech/problem-solving/practice/min-stack) | [solution](Solutions/sol_061.md) |\n|  62  | Next Greater Element | [Work@Tech](https://workat.tech/problem-solving/practice/next-greater-element) | [solution](Solutions/sol_062.md) |\n|  63  | Next Greater Element II | [LeetCode](https://leetcode.com/problems/next-greater-element-ii/) | [solution](Solutions/sol_063.md) |\n\n\n## Day 24 - Stack \u0026 Queue Problems ([PDF](/PDF_Notes/Day-24.pdf))\n\n- Tower of Hanoi\n- Expression resolution \n\t- Infix\n\t- Prefix\n\t- Postfix \n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  64  | Tower of Hanoi | [GeeksForGeeks](https://practice.geeksforgeeks.org/problems/tower-of-hanoi-1587115621/1) | [solution](Solutions/sol_064.md) |\n|  65  | Postfix Notation | [Work@Tech](https://workat.tech/problem-solving/practice/evaluate-reverse-polish-notation) | [solution](Solutions/sol_065.md) |\n\n\n## Day 25 - Stack \u0026 Queue Problems ([PDF](/PDF_Notes/Day-25.pdf))\n\n- Infix to Postfix Conversion\n- Simplify Directory Path\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  66  | Simplify Directory Path | [Work@Tech](https://workat.tech/problem-solving/practice/simplify-directory-path) | [solution](Solutions/sol_066.md) | \n|  67  | Sliding Window Maximum | [Work@Tech](https://workat.tech/problem-solving/practice/sliding-window-maximum), [LeetCode](https://leetcode.com/problems/sliding-window-maximum/) | [solution](Solutions/sol_067.md) | \n\n\u003c!-- \n# Topics to cover\n- Sliding Window Maximum\n- Rotting Apples\n --\u003e\n\n## Day 26 - Binary Tree ([PDF](/PDF_Notes/Day-26.pdf))\n\n- Binary Tree\n- Structure of Binary Tree\n- Traversal\n\t- Inorder\n\t- Preorder\n\t- Postorder\n- Number of Nodes in Tree\n- Max Height of Tree\n\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  68  | Binary Tree Inorder Traversal | [Work@Tech](https://workat.tech/problem-solving/practice/binary-tree-inorder-traversal) | [solution](Solutions/sol_068.md) | \n|  69  | Binary Tree Preorder Traversal | [Work@Tech](https://workat.tech/problem-solving/practice/binary-tree-preorder-traversal) | [solution](Solutions/sol_069.md) | \n|  70  | Binary Tree Postorder Traversal | [Work@Tech](https://workat.tech/problem-solving/practice/binary-tree-postorder-traversal) | [solution](Solutions/sol_070.md) | \n|  71  | Maximum Depth of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/maximum-depth-of-binary-tree) | [solution](Solutions/sol_071.md) | \n\n## Day 27 - Binary Tree ([PDF](/PDF_Notes/Day-27.pdf))\n\n- Level Order Traversal\n- Iterative Traversal\n\t- Inorder\n\t- Preorder\n\t- Postorder\n- Identical Binary Trees\n- Symmetric Binary Tree\n- Invert Binary Tree\n- Diameter of Binary Tree\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  72  | Level Order of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/level-order-binary-tree) | [solution](Solutions/sol_072.md) | \n|  73  | Identical Binary Trees | [Work@Tech](https://workat.tech/problem-solving/practice/identical-binary-trees) | [solution](Solutions/sol_073.md) |\n|  74  | Symmetric Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/symmetric-binary-tree) | [solution](Solutions/sol_074.md) |\n|  75  | Invert Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/invert-binary-tree) | [solution](Solutions/sol_075.md) |\n|  76  | Diameter of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/diameter-of-binary-tree) | [solution](Solutions/sol_076.md) |\n\n\n## Day 28 - Binary Tree ([PDF](/PDF_Notes/Day-28.pdf))\n\n- Print each levels \n- print i\u003csup\u003eth\u003c/sup\u003e level of tree\n- zig-zeg order traversal\n\t- using stack and queue\n\t- using deque\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  77  | Binary Tree Zigzag Level Order Traversal | [Work@Tech](https://workat.tech/problem-solving/practice/zigzag-level-order-traversal) | [solution](Solutions/sol_077.md) | \n\n\n## Day 29 - Binary Tree ([PDF](/PDF_Notes/Day-29.pdf))\n\n- Left View of Tree\n- Right View of Tree\n- Build Tree [link](https://www.geeksforgeeks.org/construct-complete-binary-tree-given-array/)\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  78  | Left View of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/left-view-binary-tree) | [solution](Solutions/sol_078.md) | \n|  79  | Right View of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/right-view-binary-tree) | [solution](Solutions/sol_079.md) | \n\n\n## Day 30 - Binary Tree ([PDF](/PDF_Notes/Day-30.pdf))\n\n- Top View of Tree\n- Bottom View of Tree\n\n|  #   | Problem Name  | Practice | Solution |\n| :--: | :------------ | :------: | --------:|\n|  80  | Top View of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/top-view-binary-tree) | [solution](Solutions/sol_080.md) | \n|  81  | Bottom View of Binary Tree | [Work@Tech](https://workat.tech/problem-solving/practice/bottom-view-binary-tree) | [solution](Solutions/sol_081.md) | \n\n\u003c!-- \n## Dynamic Programming\n\n|  17   |  Fibonacci Number | LeetCode | [Link](https://leetcode.com/problems/fibonacci-number/) | [solution](Solutions/sol_17.md) |\n|  18   | N-th Tribonacci Number | LeetCode | [Link](https://leetcode.com/problems/n-th-tribonacci-number/) | [solution](Solutions/sol_18.md) |\n|  19   | Climbing Stairs | LeetCode | [Link](https://leetcode.com/problems/climbing-stairs/) | [solution](Solutions/sol_19.md) |\n|  20   | Min Cost Climbing Stairs | LeetCode | [Link](https://leetcode.com/problems/min-cost-climbing-stairs/) | [solution](Solutions/sol_20.md) |\n \n --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajsoni03%2Fcompetitive-programming-training","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajsoni03%2Fcompetitive-programming-training","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajsoni03%2Fcompetitive-programming-training/lists"}