Welcome to my GitHub repository for the "100 Days of Code" challenge! Over the next 100 days, I'm committed to significantly improving my programming skills by focusing on mastering data structures and algorithms, enhancing problem-solving abilities, and deepening my understanding of these crucial computer science concepts.
The "100 Days of Code" is a challenge that encourages consistent coding practice. It's about committing to code for at least an hour every day for 100 consecutive days. This repository is a testament to my journey, reflecting my daily progress and the coding exercises I undertake.
- Data Structures & Algorithms Mastery: To deepen my understanding of data structures and algorithms through C++.
- Consistent Learning: To maintain a streak of coding for at least one hour every day.
- Problem-Solving Enhancement: To improve my problem-solving skills by tackling diverse coding challenges.
The progress for each day will be documented in this section, including key concepts and any specific challenges encountered. This section will be updated regularly to reflect ongoing learning.
| Day | Date | Progress | What I learnt today | Status |
|---|---|---|---|---|
| 1 | January 5, 2024 | Link to Day 1 Folder | Explored C++ basics and Solved some basic pattern coding problems | ✅ Done |
| 2 | January 6, 2024 | Link to Day 2 Folder | Solved various pattern problems like :- Diamond, Inverted Hollow Pyramid, Flipped Solid Diamond, Alphabet & Numeric Hollow Half Pyramid, Solid Half Diamond | ✅ Done |
| 3 | January 7, 2024 | Link to Day 3 Folder | Learned Bitwise Operators in C++. Solved advanced patterns: Fancy patterns, Floyd's Triangle, Pascal's Triangle, and Butterfly Pattern. | ✅ Done |
| 4 | January 8, 2024 | Link to Day 4 Folder | Completed the fundamentals of C++ . Solved problems ranging from summing even numbers to counting set bits in a number. Covered key concepts: factorial calculation, prime number identification, binary-decimal conversions, and more. | ✅ Done |
| 5 | January 9, 2024 | Link to Day 5 Folder | Began Arrays in C++. Learned Space & Time Complexity. Function Calls: Value & Reference. Problems Solved: Digit-based number creation, Integer digit printing, LeetCode #7: Reverse Integer, Count set bits, Linear Search, Zeroes & ones in array, Max number in array. | ✅ Done |
| 6 | January 10, 2024 | Link to Day 6 Folder | Explored Vector STL and dived into 2D arrays in C++! Solved Problems: Reverse an array, Extreme print in an array, Find unique elements, Sort 0's and 1's in an array, Shift array elements by 1, 2D array reverse diagonal print, Transpose a matrix. | ✅ Done |
| 7 | January 11, 2024 | Link to Day 7 Folder | Leveled up problem-solving skills with LeetCode: Missing Number(Q.268), Rotate Array(Q.189), Rotate Image(Q.48), Row with Maximum Ones(Q.2643), Sort Colors (Q.75) | ✅ Done |
| 8 | January 12, 2024 | Link to Day 8 Folder | Solved differnt questions on Array : Key Pairs on GFG, Shift negative integers left, LeetCode 287: Find Duplicate Number, First Repeating Element on GFG, LeetCode 724: Find Pivot Index, Missing element in duplicated array. | ✅ Done |
| 9 | January 13, 2024 | Link to Day 9 Folder | Began exploration of Binary Search. Solved challenges: First Occurrence, Total Occurrences, Missing Element in Sorted Array, "Peak Index in a Mountain Array" (LeetCode 852). | ✅ Done |
| 10 | January 14, 2024 | Link to Day 10 Folder | Solved: Common Element (GeeksforGeeks), Wave Print a Matrix, Spiral Matrix (LeetCode 54). Advanced Further in Binary Search with: Sqrt(x) (LeetCode 69), Search in Rotated and Sorted Array (LeetCode 33), Search a 2D Matrix (LeetCode 74). | ✅ Done |
| 11 | January 15, 2024 | Link to Day 11 Folder | Explored Sorting Algorithms: Bubble, Selection, Insertion. Mastered custom comparators. Solved Binary Search challenges: Divide using Binary Search, Binary Search on Nearly Sorted Array, Find Odd Occurring Element using Binary Search. | ✅ Done |
| 12 | January 16, 2024 | Link to Day 12 Folder | Solved some questions on Array: "Add Two Numbers Represented by Two Array" (GFG), Tackled "Factorial of a Large Number" (GFG), Removed duplicates from a sorted array (LeetCode 26), Explored "Maximum Average of Subarray 1" (LeetCode 643). | ✅ Done |
| 13 | January 17, 2024 | Link to Day 13 Folder | Mastered the basics of char arrays and strings. Implemented string reversal and conversion to uppercase. Solved a question to check if a string is a palindrome or not. Tackled LeetCode challenges: 'K Different Pairs in an Array' (LeetCode 532), 'Find K Closest Elements' (LeetCode 658). | ✅ Done |
| 14 | January 18, 2024 | Link to Day 14 Folder | Tackled challenging string problems on LeetCode today. Solved: Remove All Adjacent Duplicates in String (LeetCode 1047), Remove All Occurrences of a Substring (LeetCode 1910), Valid Palindrome II (LeetCode 680), Palindromic Substrings (LeetCode 647). | ✅ Done |
| 15 | January 19, 2024 | Link to Day 15 Folder | Explored Exponential Search today! Understood its applications and nuances, Solved the 'Book Allocation Problem' on GeeksforGeeks. | ✅ Done |
| 16 | January 20, 2024 | Link to Day 16 Folder | Today was all about conquering some interesting LeetCode challenges! Solved: 'Decode the Message' (Leetcode 2325), 'Minimum Amount of Time to Collect Garbage' (Leetcode 2391), 'Find and Replace Pattern' (Leetcode 890). | ✅ Done |
| 17 | January 21, 2024 | Link to Day 17 Folder | Explored basic Math in DSA: Slow and Fast Exponentiation, Optimized Sieve for primes, Applied Segmented Sieve, Solved Count Primes(Leetcode 204) | ✅ Done |
| 18 | January 22, 2024 | Link to Day 18 Folder | Today I solved: The painters partition problem (gfg) and Agressive cows (gfg). | ✅ Done |
| 19 | January 23, 2024 | Link to Day 19 Folder | Understand about Pointers in C++ and Solved Leetcode problem no.242 (Valid Anagram) | ✅ Done |
| 20 | January 24, 2024 | Link to Day 20 Folder | Solved and Understood the EKO and PARATA Spoj. | ✅ Done |
| 21 | January 25, 2024 | Link to Day 21 Folder | Solved: Longest common prefix(leetcode 14), Reverse only letters(leetcode 917). | ✅ Done |
| 22 | January 26, 2024 | Link to Day 22 Folder | Solved: Isomorphic Strings(leetcode #205), Reverse vowels of a String(leetcode #345). | ✅ Done |
| 23 | January 27, 2024 | Link to Day 23 Folder | Today I Solved: leetcode #49(Group Anagrams) & leetcode #5(Longest palindromic substring). | ✅ Done |
| 24 | January 28, 2024 | Link to Day 24 Folder | Solved: String Compression (leetcode_443) and String to Integer (leetcode_8). | ✅ Done |
| 25 | January 29, 2024 | Link to Day 25 Folder | Solved LeetCode #12: Integer to Romans and LeetCode #6: ZigZag Conversion. | ✅ Done |
| 26 | January 30, 2024 | Link to Day 26 Folder | Solved LeetCode #179: Largest number and LeetCode #28: Find the Index of the First Occurrence in a String. | ✅ Done |
| 27 | January 31, 2024 | Link to Day 27 Folder | Solved LeetCode #539: Minimum Time Difference and LeetCode #2125: Number of Laser Beams in a Bank. | ✅ Done |
| 28 | February 1, 2024 | Link to Day 28 Folder | Successfully solved LeetCode #1209: Remove All Adjacent Duplicates in String II and LeetCode #767: Reorganize String. | ✅ Done |
| 29 | February 2, 2024 | Link to Day 29 Folder | Today's Learnings: Revised pointer concepts in C++. Explored the world of recursion. Solved a problem using recursion: Last Occurrence. | ✅ Done |
| 30 | February 3, 2024 | Link to Day 30 Folder | Today I dived into basic recursion problems to solidify the concept. Successfully solved problems like Factorial, Fibonacci Series, Power of 2, and Printing Sum from N to 1 using recursion. | ✅ Done |
| 31 | February 4, 2024 | Link to Day 31 Folder | Navigated LeetCode #70: Climbing Stairs using recursion and Solved problems like Finding Minimum Number in Array, Printing Array, and Searching in Array using recursion. | ✅ Done |
| 32 | February 5, 2024 | Link to Day 32 Folder | Implemented printing digits using recursion, Successfully reversed a string using recursion, Stored even numbers from an array into vectors (using recursion). | ✅ Done |
| 33 | February 6, 2024 | Link to Day 33 Folder | Implemented a recursive check for array sorting, Successfully performed binary search using recursion, Found subsequences of a string using recursion. | ✅ Done |
| 34 | February 7, 2024 | Link to Day 34 Folder | Solved Maximized cut segments using recursion (GFG), Coin change problem using recursion (LeetCode 322) and House robber problem using recursion (LeetCode 198). | ✅ Done |
| 35 | February 8, 2024 | Link to Day 35 Folder | Implemented palindrome check using recursion and Successfully solved 'Add Strings'(LeetCode 415) using recursion. | ✅ Done |
| 36 | February 9, 2024 | Link to Day 36 Folder | Printed all subarrays using recursion and Solved leetcode #1910 (Remove All Occurrences of a Substring). | ✅ Done |
| 37 | February 10, 2024 | Link to Day 37 Folder | Today I solved: Best time to buy and sell stock using recursion (LeetCode #121) and Minimum cost for tickets using recursion (LeetCode #983). | ✅ Done |
| 38 | February 11, 2024 | Link to Day 38 Folder | Solved integers to English words using recursion (LeetCode #273) And wildcard matching using recursion (LeetCode #44). | ✅ Done |
| 39 | February 12, 2024 | Link to Day 39 Folder | Calculated the number of dice rolls with target sum using recursion (LeetCode #1155), Found perfect squares using recursion (LeetCode #279) | ✅ Done |
| 40 | February 13, 2024 | Link to Day 40 Folder | Explored the divide and conquer strategy and Deepened understanding of implementing merge sort using recursion | ✅ Done |
| 41 | February 14, 2024 | Link to Day 41 Folder | Solved the important problem of counting inversions using merge sort on HackerRank. | ✅ Done |
| 42 | February 15, 2024 | Link to Day 42 Folder | Deepened understanding of the concept of backtracking and Successfully solved two problems: finding permutations of a string and the "Rat in a Maze" problem. | ✅ Done |
| 43 | February 16, 2024 | Link to Day 43 Folder | Solved "Sort an Array" problem (LeetCode #912) using in-place merge sort. | ✅ Done |
| 44 | February 17, 2024 | Link to Day 44 Folder | Solved the "Maximum Subarray" problem (LeetCode #53) and Initiated learning Object-Oriented Programming concepts in C++, focusing on local variables, global variables, and understanding memory layout of a program. | ✅ Done |
| 45 | February 18, 2024 | Link to Day 45 Folder | Solved the "Combination Sum" problem (LeetCode #39), mastering backtracking. Deepened understanding of Object-Oriented Programming concepts: Learned about the need for OOPs. Explored classes, objects, public and private access modifiers. Understood constructors, "this" pointer, and memory allocation on heap and stack. | ✅ Done |
| 46 | February 19, 2024 | Link to Day 46 Folder | Successfully solved LeetCode #40: Combination Sum II. Expanded knowledge of Object-Oriented Programming: Explored the "const" keyword for constants. Learned about initialization lists for efficient object initialization. Studied macros and their usage. Deepened understanding of the "static" keyword, focusing on static data members and static member functions. | ✅ Done |
| 47 | February 20, 2024 | Link to Day 47 Folder | Solved LeetCode #47: Permutation II. Explored further concepts of Object-Oriented Programming: Learned about the Copy Constructor, Delved into the lifecycle of an object and explored Destructors. | ✅ Done |
| 48 | February 21, 2024 | Link to Day 48 Folder | Solved LeetCode #526: Beautiful Arrangement. | ✅ Done |
| 49 | February 22, 2024 | Link to Day 49 Folder | Solved LeetCode 1655: Distribute Repeating Integers. | ✅ Done |
| 50 | February 23, 2024 | Link to Day 50 Folder | Explored the pillars of OOP: Abstraction, Encapsulation, Inheritance. Deepened understanding of access specifiers: Public, Private, Protected. Delved into types of inheritance: Single, Multilevel, Hierarchical. Investigated the Diamond Problem and polymorphism concepts. | ✅ Done |
| 51 | February 24, 2024 | Link to Day 51 Folder | Distinguished between shallow vs deep copy in C++. Explored the concept of making constructors private. Learned about the "friend" keyword in C++. | ✅ Done |
| 52 | February 25, 2024 | Link to Day 52 Folder | Explored dynamic polymorphism & function overriding in C++. Implemented custom MyString class (String implementation). | ✅ Done |
| 53 | February 26, 2024 | Link to Day 53 Folder | Explored "virtual" keyword in C++ for dynamic polymorphism. Solved problem Leetcode #2709: Greatest Common Divisor Traversal. | ✅ Done |
| 54 | February 27, 2024 | Link to Day 54 Folder | Explored abstraction: Abstraction in header files, classes, & abstract classes. Learned about inline functions for efficiency. | ✅ Done |
| 55 | February 28, 2024 | Link to Day 55 Folder | Initiated learning Linked List basics: Node creation, Operations: Insert at Head, Insert at Tail, Find Length, Insert at Position. | ✅ Done |
| 56 | February 29, 2024 | Link to Day 56 Folder | Solved "Delete N nodes after M nodes of a linked list" on gfg | ✅ Done |
| 57 | March 1, 2024 | Link to Day 57 Folder | Solved Leetcode problem #21: "Merge Two Sorted Lists". | ✅ Done |
| 58 | March 2, 2024 | Link to Day 58 Folder | Successfully solved the "Get Node Value" problem on HackerRank. | ✅ Done |
| 59 | March 3, 2024 | Link to Day 59 Folder | Solved Leetcode problem 160: "Intersection of Two LinkedLists". | ✅ Done |
| 60 | March 4, 2024 | Link to Day 60 Folder | Solved Leetcode problem 148: "Sort List" using merge sort. | ✅ Done |
| 61 | March 5, 2024 | Link to Day 61 Folder | Solved "Flattening a Linked List" problem on GfG. | ✅ Done |
| 62 | March 6, 2024 | Link to Day 62 Folder | Solved Leetcode problem 138: "Copy list with Random Pointer". | ✅ Done |
| 63 | March 7, 2024 | Link to Day 63 Folder | Solved Leetcode problem 61: "Rotate list". | ✅ Done |
| 64 | March 8, 2024 | Link to Day 64 Folder | Solved Leetcode problem 2058: "Find the Minimum and Maximum Number of Nodes Between Critical Points". | ✅ Done |
| 65 | March 9, 2024 | Link to Day 65 Folder | Solved Leetcode problem 2181: "Merge Nodes in Between Zeros". | ✅ Done |
| 66 | March 10, 2024 | Link to Day 66 Folder | Solved Leetcode problem 328: "Odd Even Linked List". | ✅ Done |
| 67 | March 11, 2024 | Link to Day 67 Folder | Solved Leetcode problem 2816: "Double a Number Represented as a Linked List". | ✅ Done |
| 68 | March 12, 2024 | Link to Day 68 Folder | Solved Leetcode problem 1721: "Swapping Nodes in a Linked List". | ✅ Done |
| 69 | March 13, 2024 | Link to Day 69 Folder | Solved Leetcode problem 1171: "Remove Zero Sum Consecutive Nodes from Linked List". | ✅ Done |
| 70 | March 14, 2024 | Link to Day 70 Folder | Explored basics of Stack. | ✅ Done |
| 71 | March 15, 2024 | Link to Day 71 Folder | Explored Advance Stact Operations: Finding the middle element, Revesing the stack, Sorting stack elements. | ✅ Done |
| 72 | March 16, 2024 | Link to Day 72 Folder | Implemented Two Stack using one Array and Solved "Check for Redundant Brackets" problem. | ✅ Done |
| 73 | March 17, 2024 | Link to Day 73 Folder | Explored next and previous smaller element algorithm and Implemented the Largest Rectangle in Histogram problem. | ✅ Done |
| 74 | March 18, 2024 | Link to Day 74 Folder | Successfully tackled the "Count the Reversals" problem on GfG. | ✅ Done |
| 75 | March 19, 2024 | Link to Day 75 Folder | Solved Leetcode problem 1047: "Remove All the Adjacentt Duplicates in String". | ✅ Done |
| 76 | March 20, 2024 | Link to Day 76 Folder | Solved "The Celebrity Problem" on GfG. | ✅ Done |
| 77 | March 21, 2024 | Link to Day 77 Folder | Successfully tackled "Next Greater Node in LinkedList" problem on Leetcode(1019). | ✅ Done |
| 78 | March 22, 2024 | Link to Day 78 Folder | Solved "Online Stock Span" problem on Leetcode. | ✅ Done |
| 79 | March 23, 2024 | Link to Day 79 Folder | Solved "Check if word is valid after Substitutions" problem on Leetcode #1003. | ✅ Done |
| 80 | March 24, 2024 | Link to Day 80 Folder | Conquered Leetcode problem #394 "Decode String". | ✅ Done |
| 81 | March 25, 2024 | Link to Day 81 Folder | Solved Leetcode problem #71 "Simplify Path", streamlining path representation. | ✅ Done |
| 82 | March 26, 2024 | Link to Day 82 Folder | Successfully tackled Leetcode problem #85 "Maximal Rectangle". | ✅ Done |
| 83 | March 27, 2024 | Link to Day 83 Folder | Resolved Leetcode problem #735 "Asteroid Collision". | ✅ Done |
| 84 | March 28, 2024 | Link to Day 84 Folder | Successfully solved Leetcode problem #853 "Car Fleet". | ✅ Done |
| 85 | March 29, 2024 | Link to Day 85 Folder | Successfully solved Leetcode problem #1776 "Car Fleet II". | ✅ Done |
| 86 | March 30, 2024 | Link to Day 86 Folder | Successfully tackled Leetcode problem #32 "Longest Valid Parentheses". | ✅ Done |
| 87 | March 31, 2024 | Link to Day 87 Folder | Conquered Leetcode problem #739 "Daily Temperature". | ✅ Done |
| 88 | April 1, 2024 | Link to Day 88 Folder | Solved Leetcode problem #402 "Remove K Digits". | ✅ Done |
| 89 | April 2, 2024 | Link to Day 89 Folder | Solved Leetcode problem #921 "Minimum Add to Make Parentheses Valid". | ✅ Done |
| 90 | April 3, 2024 | Link to Day 90 Folder | Solved Leetcode problem #1472 "Design Browser History". | ✅ Done |
| 91 | April 4, 2024 | Link to Day 91 Folder | Solved Leetcode problem #232 "Implement Queue using Stacks". | ✅ Done |
| 92 | April 5, 2024 | Link to Day 92 Folder | Conquered Leetcode problem #225 "Implement Stack using Queues". | ✅ Done |
| 93 | April 6, 2024 | Link to Day 93 Folder | Solved Leetcode problem #933 "Number of Recent Calls". | ✅ Done |
| 94 | April 7, 2024 | Link to Day 94 Folder | Successfully tackled Leetcode #1823 "Find the Winner of the Circular Game". | ✅ Done |
| 95 | April 8, 2024 | Link to Day 95 Folder | Solved Leetcode problem #950 "Reveal Cards in Increasing Order". | ✅ Done |
| 96 | April 9, 2024 | Link to Day 96 Folder | Solved Leetcode problem #2327 "Number of People Aware of a Secret". | ✅ Done |
| 97 | April 10, 2024 | Link to Day 97 Folder | Solved Leetcode problem #543 "Diameter of Binary Tree". | ✅ Done |
| 98 | April 11, 2024 | Link to Day 98 Folder | Solved Leetcode problem #110 "Balanced Binary Tree". | ✅ Done |
| 99 | April 12, 2024 | Link to Day 99 Folder | Successfully solved Leetcode problem #101 "Symmetric Tree". | ✅ Done |
| 100 | April 13, 2024 | Link to Day 100 Folder | Successfully solved "Diagonal Traversal of Binary Tree" on GfG. | ✅ Done |
I'm incredibly proud of the progress I've made in honing my coding skills over the past 100 days. Looking forward to continuing this journey and taking on new challenges! 💻🎉
- Code: This directory contains all the code developed during the challenge. It is organized by day for ease of navigation.
- READMEs: Each day's folder contains a README for insights into what was covered or developed.
Feel free to reach out or follow my coding journey:
- LinkedIn: LinkedIn Profile
- Twitter: Twitter Handle
Join me on this coding adventure, and let's explore the fascinating world of Data Structures and Algorithms together!
This README is a living document and will be updated regularly to reflect my journey's progress.
This repository is solely for learning purposes.