100DaysOfCode Challenge

Credits to https://github.com/kallaway/100-days-of-code

Well, I like to see my progress right here. What can I reach whithin 100 days? Let's see...

Day 0: March 24, 2020 (Tuesday)

Today's Progress: Solved 8 LeetCode problems. Watched MIT lecture on dynamic programming.

Thoughts: I concentrated on "Dynamic programming". I don't like this type of problems, but they are so useful. One came at my Google interview. Also solved some "Strings" topic problems. I want to do more LeetCode + start my pet projects finally.

Day 1: March 25, 2020 (Wednesday)

Today's Progress: Solved 2 LeetCode problems. Read more on dynamic programming. Learned how to delete git remote link.

Thoughts: I really struggle with dynamic programming. But solving more problems will help me to get better at it. It was interesting to understand that most of the time the brute-force solution to dynamic programming questions is recursion. Refreshed how to calculate space and time complexity, but still struggling. I may take an algo online course, it will help me to solve problems with more confidence.

Day 2: March 26, 2020 (Thursday)

Today's Progress: Solved 2 more LeetCode problems. Practiced Min heap problems.

Thoughts: Min heap is a really useful data structure. I learned how to create and use it in Python. Also I have started my Codecademy computer science path. I hope it will help me to get a better grasp on data structures and algorithms.

Link to work: Merge k-sorted lists, Meeting rooms II

Day 3: March 27, 2020 (Friday)

Today's Progress: Completed Codecademy's "Introduction to programming" and half of "Development skills". Still exploring Netwokx Pyhton library.

Thoughts: Refreshing basic Python syntaxis knowledge was very useful. I learned that "touch" in the shell actually creates a new file. (I thought it creates something like a temporary image.) Refreshed the knowledge of the git version control system.

Link to work: Codecademy Computer Science course

Day 4: March 28, 2020 (Saturday)

Today's Progress: Completed Codecademy's "Development skills". Started "Flow Control". Solved Leetcode problems.

Thoughts: It is very interesting to learn new things about the language that you use frequently. Today's Leetcode session showed me simpler solutions to "String" problems using indexes instead of strings themselves.

Link to work: Palindromic Substrings, Longest Repeating Character Replacement

Day 5: March 29, 2020 (Sunday)

Today's Progress: Finished "Flow control". Paticipated in Leetcode contest.

Thoughts: My first Leetcode contest and I managed to solve three problems out of four. Next time I want to solve all four. I want to finish Python recap quickly so I can do data structures soon.

Day 6: March 30, 2020 (Monday)

Today's Progress: Solved two leetcode problems. Worked with Networkx library.

Thoughts: You should be very careful with the version of the library that you are using. Documentation and function implementation may be very different. Solved some Leetcode problems that include strings and dynamic programming.

Link to work: Minimum Window Substring, Encode and Decode Strings

Day 7: March 31, 2020 (Tuesday)

Today's Progress: Finished "Iterables". Did Codecademy project. Debugged research code.

Thoughts: Learned list compression and tuple opening. Useful Python commands: zip(list, list), list.sort(), sorted(list), list.count(item). Tomorrow will do Leetcode and advanced data structures in Python.

Day 8: April 1, 2020 (Wednesday)

Today's Progress: First day of Leetcode 30-days challenge. Started complex data structures. Debug research code.

Thoughts: Easy problem on Leetcode, but I discovered for myself a new way to solve this problem by XOR operation. And it is faster than adding traverced numbers to the dictionary. Data structure reviewed - hash table. Updated research results table. No improvement for now, but I have some time to debug tomorrow.

Link to work: Single Number

Day 9: April 2, 2020 (Thursday)

Today's Progress: Second day of Leetcode 30-days challenge. Finished data structures. Debug research code.

Thoughts: Easy problem on Leetcode.Tried virtual contest and failed miserably. I definetely have to practice more.

Link to work: Happy Number

Day 10: April 3, 2020 (Friday)

Today's Progress: Third day of Leetcode 30-days challenge. Debug research code. Finished research code. Learning graph theory: centrality. Codecademy: Python strings.

Thoughts: Decided to include centrality to the code. Exploring Networkx breadth first tree and more.

Link to work: Maximum Depth of Binary Tree

Day 11: April 4, 2020 (Saturday)

Today's Progress: Fourth day of Leetcode 30-days challenge. Solved Leetcode problems.

Thoughts: My first Biweekly Leetcode contest and solved all problems. Solved one problem in Google Code Jam. Fourth day of Leetcode challenge - still going strong. I expect to have more rigorous questions later in the challenge. Leetcode problems were mostly motivated by NU ACM Student Chapter's Leetcode sessions. Thanks to ACM!

Link to work: Move Zeroes, Same Tree, Invert/Flip Binary Tree, Subtree of Another Tree, Binary Tree Level Order Traversal, Validate Binary Search Tree, Serialize and Deserialize Binary Tree, Construct K Palindrome Strings, Reducing Dishes, Count Largest Group, Circle and Rectangle Overlapping,

Day 12: April 5, 2020 (Sunday)

Today's Progress: Fifth day of Leetcode 30-days challenge.

Thoughts: Solved Leetcode problems. My second weekly contest.

Link to work: Best Time to Buy and Sell Stock II, Minimum Subsequence in Non-Increasing Order, Longest Happy String, Number of Steps to Reduce a Number in Binary Representation to One

Day 13: April 6, 2020 (Monday)

Today's Progress: Sixth day of Leetcode 30-days challenge. Solved some weekly problems.

Thoughts: First day of class was tough. Slowly shifting to C++: one problem today.

Link to work: Sum of Two Integers, Number of 1 Bits, Hamming Distance, Missing Number, Single Number

Day 14: April 7, 2020 (Tuesday)

Today's Progress: Seventh day of Leetcode 30-days challenge.

Thoughts: Answered to some questions to my solutions, solved daily problem.

Link to work: Counting Elements, Kth Smallest Element in a BST

Day 15: April 8, 2020 (Wednesday)

Today's Progress: New week of Leetcode 30-days challenge! Solved two problems on "Binary" topic. Refreshed binary shifting.

Thoughts: Watched video why the adding without "+" works. Wow, this is amazing. Link to the video below.

Link to work: Counting Bits, Reverse Bits, Binary addition video

Day 16: April 9, 2020 (Thursday)

Today's Progress: Ninth day of Leetcode 30-days challenge.

Thoughts: Came up with the beautiful O(n) solution.

Link to work: Backspace String Compare

Day 17: April 10, 2020 (Friday)

Today's Progress: Tenth day of Leetcode 30-days challenge.

Thoughts: Bruteforce solution. Reviewed binary problem solutions as I will present one problem tomorrow.

Link to work: Min Stack

Day 18: April 11, 2020 (Friday)

Today's Progress: Eleventh day of Leetcode 30-days challenge. Reviewed trees. Elegant binary solutions.

Thoughts: I would never know, how beautiful binary is if not these sessions.

Link to work: Diameter of Binary Tree

Day 19: April 12, 2020 (Friday)

Today's Progress: Leetcode contest. Solved 2/4 problems.

Thoughts: Ugh, hard questions. HTML problem just have eaten my time, ugh. But it is my third contest, not bad, hehe.

Link to work: String Matching in an Array, Queries on a Permutation With Key

Day 20: May 22, 2020 (Friday)

Today's Progress: Cpp course on coursera.

Thoughts: Problems are taking so much time. But I like to do them anyway, so no regrets.

Link to work Course

Day 21: June 14, 2020 (Sunday)

Today's Progress: Cpp course on coursera.

Thoughts: Wow. Seniors at Yandex write such a clean code. Learned about standard I/O classes and file I/O classes. Practiced reading and writing with couple of problems. I want to finish the fourth week tomorrow.