Contributions made in the following tasks -
-
Array
- #28 : 5% Mean - Mean of elements after excluding smallest 5% and largest 5% elements.
- #52 : Push Zero - Push zeroes to back of the array.
- #53 : Weird Sorting - Sort a given array in O(n) space and time complexity.
- #54 : Missing ID - Find stack number of the missing ID.
-
String
- #55 : Unique Character - Find first unique element of a string.
- #56 : Binary Add - Add two binary strings.
- #59 : Malfunctioning Keyboard - Find the working keys and print them in alphabetical order.
- #63 : Rotate Word - Find pivot and rotate the second string and check if it is same as the first string.
-
Recursion
- #64 : Climb Stairs - Find number of ways to climb stairs using 1 or 2 steps.
- #70 : Pattern - Print a given pattern.
-
Stack
- #72 : Destroy Asteroid - Find the state of asteroids after all collisions.
- #85 : Priority Task - Find the task with the next greater priority number for every ith task.
- #109 : Substitution - Check whether or not the string is in the combination of “abc” or Xleft + “abc” + Xright where Xleft + Xright is “abc” .
-
Linked List
-
Binary Tree
- #131 : Rank - Count number of nodes falling in th given range.
- #135 : Collect Target - Check whether a given number is equal to the sum of an root to leaf path.
-
Dynamic Programming
- #137 : Cookie Collect - Find maximum number of cookies can be obtained.
- #148 : Lucky Pairs - Check whether the length of longest common subsequence of two strings is greater than half of length of the larger string.
-
Backtracking
- #152 : Save Yourself - Print all possible palindromic partitions of a string.
- #154 : Case Game - Print all combinations of string formed by transforming every character to lowercase and uppercase.
-
Graph
- #217 : Task Prerequisite - Check whether all tasks can be completed or not.
- Tasks based on string operations done within O(n) time complexity.
- Sorting of an array of combinations of three numbers are done within O(n) time complexity instead of O(n.log(n)) complexity.
- The middle node of a linked list found in a single traversal.
- Binary addition of two strings can be done in a better way.
- Some codes yielding wrong output previously. Later, it's solved.
- Reduced time complexities in necessary portions.
As this project is for them who want to step in the field of Competitive Programming, that's based on Data Structures & Algorithms. Therefore, according to me, problems can be arranged in such a way that a particular problem may done using different techniques. For example, the task Beanpole Cut under Dynamic Programming can be given under the recursion category too. So that, the newbie can get a clear idea of what is happening for the same task using different ways. And doing so, they can compare them and find the optimized one.
The whole month was productive indeed. Learned various new approaches and algorithms. Learned how to contribute in open-source projects and how to utilize the features of git and github. Also, learned different tips and tricks of competitive programming. Our mentors are very kind, knowledgeable, humble and helpful. I got stuck badly in the beginning of program with some commits and branching issues (previously I had zero idea about these things). Mentors helped a lot in making a way out through it. Apart from that, they helped in many ways and mentored us very well. So, my overall experience in Winter of Code 2020 was amazing.