<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: eashwar ammu</title>
    <description>The latest articles on DEV Community by eashwar ammu (@vinnugollakoti).</description>
    <link>https://dev.to/vinnugollakoti</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2574960%2F2f724c3f-55a2-417f-89c4-0f39d1894a36.jpeg</url>
      <title>DEV Community: eashwar ammu</title>
      <link>https://dev.to/vinnugollakoti</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vinnugollakoti"/>
    <language>en</language>
    <item>
      <title>Day 38 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Sun, 22 Dec 2024 10:24:45 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-38-journal-56p4</link>
      <guid>https://dev.to/vinnugollakoti/day-38-journal-56p4</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode: Letter Combination of a Phone Number, Container with Most Water, and Rotate Array. Solving different problems every day helps us to think about problems from different angles. There are various ways to solve a problem. If you find one way to solve it, don't stop there try to optimize the solution further. This will help you find the most efficient way to solve the given problem.&lt;/p&gt;

&lt;p&gt;Letter Combination of a Phone Number: We can use the concept of backtracking with one base condition to solve this problem. We have to find all possible combinations of characters linked to specific digits in the given input. The base condition will help us stop the function's execution when necessary. This approach allows us to solve the problem effectively.&lt;/p&gt;

&lt;p&gt;Container with Most Water: In this problem we need to find the maximum area that can be formed. We can traverse array using two pointers one which starts from the beginning and other from the end and thus we will efficiently able to find the solution for that.&lt;/p&gt;

&lt;p&gt;Rotate Array: The problem here is to rotate the array by a given number of positions. We can do this by slicing the array according to the given position and creating a new array by appending the slices in the correct order. This approach solves the problem effectively.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful to you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 60 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 04:22:15 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-60-journal-5a54</link>
      <guid>https://dev.to/vinnugollakoti/day-60-journal-5a54</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode: Single Number, First Missing Positive, and Next Greater Element III. There are some common mistakes that most of us make myself included. For instance, when we come across an easy problem, we might be tempted to ignore it or use a familiar approach to quickly solve it, then move on without exploring further. However, it’s important to use resources to determine whether the solution you found is the most efficient one. If it’s not, take the time to learn the more efficient solution.&lt;/p&gt;

&lt;p&gt;Single Number is an easy problem, and I was familiar with one approach. However, I was curious to find the most efficient solution. When I discovered it, I was really surprised that the problem could be solved in such an efficient way.&lt;/p&gt;

&lt;p&gt;Similarly, when solving First Missing Positive and Next Greater Element III, it’s crucial to focus on building a solid logic first. Then, break it down into smaller steps this will simplify the process. Approaching problems in this way helps to develop better solutions.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful to you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 50 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 04:20:32 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-50-journal-2f6f</link>
      <guid>https://dev.to/vinnugollakoti/day-50-journal-2f6f</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode: Single Number, First Missing Positive, and Next Greater Element III. There are some common mistakes that most of us make myself included. For instance, when we come across an easy problem, we might be tempted to ignore it or use a familiar approach to quickly solve it, then move on without exploring further. However, it’s important to use resources to determine whether the solution you found is the most efficient one. If it’s not, take the time to learn the more efficient solution.&lt;/p&gt;

&lt;p&gt;Single Number is an easy problem, and I was familiar with one approach. However, I was curious to find the most efficient solution. When I discovered it, I was really surprised that the problem could be solved in such an efficient way.&lt;/p&gt;

&lt;p&gt;Similarly, when solving First Missing Positive and Next Greater Element III, it’s crucial to focus on building a solid logic first. Then, break it down into smaller steps this will simplify the process. Approaching problems in this way helps to develop better solutions.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful to you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 54 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 04:11:58 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-54-journal-29ji</link>
      <guid>https://dev.to/vinnugollakoti/day-54-journal-29ji</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode : Rotting Oranges, Maximize confusion in exam, and Koko eating Bananas. All these examples are very conceptual and logical. The most important part is to observe that these three problems connect to our real life scenarios.&lt;/p&gt;

&lt;p&gt;The problems that are related to real life can easily grasp our attention and easy for visualize. The real life examples will help us to remember the concepts for long time. let me give you a example:&lt;/p&gt;

&lt;p&gt;Sliding window maximum is a problem solved using dequeue. When you first read the problem statement, it may seem like a purely mathematical problem involving array of numbers.&lt;/p&gt;

&lt;p&gt;Rotting Oranges is another problem solved using dequeue. but, it is framed in a real life situation, which makes the concept more relatable and engaging.&lt;/p&gt;

&lt;p&gt;So, now you can clearly observe that the problem related to real life will look more engaging when compared to mathematical problems.&lt;/p&gt;

&lt;p&gt;Maximize confusion in exam : In this problem we can traverse through out the provided string and keep track of length. This will help us to interchange the position of Boolean values to get maximum possible length.&lt;/p&gt;

&lt;p&gt;I hope my experience is helpful.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 52 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 04:09:33 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-52-journal-9hk</link>
      <guid>https://dev.to/vinnugollakoti/day-52-journal-9hk</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three questions on LeetCode: Basic Calculator II, Subsets, and Subsets II.&lt;/p&gt;

&lt;p&gt;I have noticed that some problems on LeetCode are connected in terms of concepts and logics, like subsets and subsets II. Solving these related problems in a specific way can be a effective step in your learning process.&lt;/p&gt;

&lt;p&gt;For Beginners:&lt;/p&gt;

&lt;p&gt;If, you are just started. Plan to solve the connected problems on same day or at least on successive days. This helps the beginners to practice the same core concept multiple times along with some new concept.&lt;/p&gt;

&lt;p&gt;For Advanced Solvers:&lt;/p&gt;

&lt;p&gt;Plan to solve the connecting problems with a significant days gap in between. This method help you to test the ability to recall and apply the concepts after break, which is a right way to test problem solving skills.&lt;/p&gt;

&lt;p&gt;In this way solving connecting problems in specific order can help you to enhance your learning.&lt;/p&gt;

&lt;p&gt;As a beginner, I planned to solve subsets and subsets II together this helped me to practice the core recursive concept for multiple times and also helped me to learn the way to adapt the solution to solve second problem with additional complexity.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 47 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:59:07 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-47-journal-1fp9</link>
      <guid>https://dev.to/vinnugollakoti/day-47-journal-1fp9</guid>
      <description>&lt;p&gt;Hi, Folks! Today I solved three problems on LeetCode : Unique Paths, Spiral matrix, and N-Queens. Let’s walk through these problems.&lt;/p&gt;

&lt;p&gt;Unique paths problem&lt;/p&gt;

&lt;p&gt;We are given two numbers, representing number of rows and number of columns. Our task is to find the total number of unique paths to reach the position (m-1,n-1) from (0,0). To solve this problem, we can follow recursive approach. We can start from (0,0) recursively find steps to travel right and bottom until we reach the required position. To find total unique paths, we would add the right steps to bottom steps and return it. However, there is a small issue with this approach: the solutions may repeat number of times. To overcome this, the alternative approach is to use DP matrix. We create a DP matrix with same number of rows and columns as input and we initialize all positions of DP matrix with 1. Finally, we return the value in the lats cell of DP matrix as total number off unique paths.&lt;/p&gt;

&lt;p&gt;Spiral Matrix&lt;/p&gt;

&lt;p&gt;We are given with a matrix and we have to return a list containing the elements of matrix in spiral order. To solve this problem, we can use indexing limits as conditions to run a loop. We traverse from left to right of matrix we can use one for loop. Then, we move from the top-right corner to the bottom-right corner with another loop. We traverse from the bottom-right corner to the bottom-left corner using a third loop. Finally, we move from the bottom-left corner to the top-left corner with a fourth loop. In this way, we use four different loops to traverse in all four directions, controlling them with indexing limits.&lt;/p&gt;

&lt;p&gt;N-Queens&lt;/p&gt;

&lt;p&gt;We are given with a input number n, we have to find the number of ways to place n queens in nxn matrix such that no two queens will attack each other. This means no two queens should be in same row, column, or diagonal. To solve this problem, we can use recursion and backtracking concepts. We can first perform recursion to repeat the process multiple times. because, we need to find all the possible ways to place queens. Backtracking is performed when we did not find the correct position to place queen then we can replace ‘Q’ with ‘.’ and repeat the process for the next position.&lt;/p&gt;

&lt;p&gt;We can optimize the above solution by using three lists. One lists is to keep track of number of rows. lets say we have n rows we will place n zeros in the list and replace the respective zero by one if that specific row is having queen. This will avoid unnecessary backtracking. Similarly, the second list is for lower diagonal, and third list is for upper diagonal. Both diagonal lists have 2n-1 elements all initially set to zeros. As we traverse through the matrix to place queens, we update the respective row or diagonal list by replacing 0 with 1 when queen is placed. This indicates that no more queens can be placed in that respective diagonal or row. In this way, this approach works efficiently.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 45 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:55:14 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-45-journal-5gic</link>
      <guid>https://dev.to/vinnugollakoti/day-45-journal-5gic</guid>
      <description>&lt;p&gt;Hi, folks! Today I solved three interesting problems on LeetCode : Palindrome linked list, Linked list cycle and Flatten Multilevel doubly linked list. As a Beginner, I felt Flatten Multilevel doubly linked list problem to be a bit challenging. We need to find a perfect recursive approach to solve this problem in efficient way. To determine the correct base condition and recursive function, we need to think in many possible approaches and dry run the code carefully. I also used some resources for the better understanding.&lt;/p&gt;

&lt;p&gt;Linked list cycle is a conceptual problem that introduces a new type in linked list called a circular linked list. This problem helped me to gain conceptual clarity on circular linked list.&lt;/p&gt;

&lt;p&gt;Palindrome linked list problem is having many ways to solve. One of them is using stack data structure and the another way is dividing the linked list into manageable parts and then comparing them. The second approach seems to be a bit lengthy, but it becomes easier when you divide the task into sub tasks and implement them in separate functions. This will make process simplify.&lt;/p&gt;

&lt;p&gt;I hope my experiences will be helpful.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 43 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:51:34 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-43-journal-1983</link>
      <guid>https://dev.to/vinnugollakoti/day-43-journal-1983</guid>
      <description>&lt;p&gt;Hey, I am so delighted to say that I was able to take the next step in my competitive programming journey. I started with no knowledge of linked lists and have now begun learning some of the tougher concepts. After covering the basics, I moved on to more complicated topics. I’ve learned about linked lists and tackled a few related questions over the past few days. Today, I focused on Dojo-related questions, as I need them for my upcoming dojo this week. I made a plan with that in mind. So, today I worked on three different questions that were from linked list in which one of them is array. Two were difficult while the third one is okay.&lt;/p&gt;

&lt;p&gt;First and foremost i would like to start of with my dojo belt test which i took today to be frank i though that i will be able to clear the belt but unfortunately i was able to do two question and after that i did all the next three but their is error in compiler because of the issue i lost the belt .And for learning more about linked list i was following an youtube channel. It helped me a lot with the proper guidance that i need to solve the questions.&lt;/p&gt;

&lt;p&gt;For the first question,I did Find the sub-array which has largest sum and return its sum. In which we were provided with a list their we have to take the largest sub-array then we have to sum the array and return the value. For next question i did merge two sorted linked list where we were given two sorted linked list and we have to merge them and print the output i used the concept merge sort in sorting algorithms. it was the most difficult question for today. I felt it to be easy compare to the first one and i was improving every day and it felt good to see myself better than yesterday.&lt;/p&gt;

&lt;p&gt;Last but not least, I did flattering of linked list. The idea is to traverse the linked list and push values of all the nodes in an array. Now, we can sort the array in ascending order, and create a new linked list by traversing the sorted array. While creating the new linked list, we will append the nodes using the bottom pointer of flattened linked list.. That all for the day. Overall, the day was great and productive.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 42 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:47:35 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-42-journal-19k6</link>
      <guid>https://dev.to/vinnugollakoti/day-42-journal-19k6</guid>
      <description>&lt;p&gt;Hey, I am so delighted to say that I was able to take the next step in my competitive programming journey. I started with no knowledge of linked lists and have now begun learning some of the tougher concepts. After covering the basics, I moved on to more complicated topics. I’ve learned about linked lists and tackled a few related questions over the past few days. Today, I focused on Dojo-related questions, as I need them for my upcoming dojo this week. I made a plan with that in mind. So, today I worked on three different questions that were from linked list. In the three two questions are difficult and other was moderate.&lt;/p&gt;

&lt;p&gt;For the first question,I did Sorting array in liked list where we are required to arrange a linked list which were arranged randomly in proper manner it also took me a lot of time to do this while watch a youtube video. After completing the first i did the next question which is if their exist a pair of elements in linked list whose sum is equal to X. In this we have to check by adding two indexes if this is equal to the provided value X then we have to return the pair indexes. I felt it to be easy compare to the first one and i was improving every day and it felt good to see myself better than yesterday.&lt;/p&gt;

&lt;p&gt;Last but not least, I did odd even linked list where we will be provided with a list we have to rearrange the list by verifying if they are odd we have to get them to the start of the list if not the at the end of the list we have to add the even elements . That all for the day. Overall, the day was great and productive.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 41 journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:46:04 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-41-journal-278n</link>
      <guid>https://dev.to/vinnugollakoti/day-41-journal-278n</guid>
      <description>&lt;p&gt;Hi, folks! Today, I solved three problems on LeetCode: “Find All Anagrams in a String,” “Longest Consecutive Sequence,” and “Search in Rotated Sorted Array.” These problems are really interesting, and we have different logical approaches to solve them. They are extensions of the classic problems of checking if two strings are anagrams and searching for a target element in an array.&lt;/p&gt;

&lt;p&gt;Find All Anagrams in a String: To solve this problem, we can use the sliding window technique. We need to traverse the input array while keeping track of a fixed length of consecutive elements. We check whether this segment is an anagram of the target string. If it is, we add the index to the result array; if not, we ignore the index. In this way we can solve the problem.&lt;/p&gt;

&lt;p&gt;Longest Consecutive Sequence: To solve this problem, we first remove duplicate elements from the array using a set. Then, we traverse the array and check for any sequence of consecutive elements (+1 or -1). If such a sequence exists, we keep track of its count; otherwise, we ignore it. This way, we can determine the length of the longest consecutive sequence.&lt;/p&gt;

&lt;p&gt;Search in Rotated Sorted Array: To solve this problem, we can use the binary search approach. First, we divide the input array into two parts. We then identify which half is sorted and perform a binary search on that half to find the target element. If the target is not found in the sorted half, we continue searching in the unsorted half. If the target element is not found in either half, we return -1. In this way we can solve this problem.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 40 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:41:48 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-40-journal-35k4</link>
      <guid>https://dev.to/vinnugollakoti/day-40-journal-35k4</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode: Max Chunks to Make Sorted, Find the Town Judge, and Maximum Subarray. Every competitive programmer has their own logic to solve problems. However, algorithms can sometimes optimize the solution. For a programmer, solving the problem is not the challenge; solving the problem in an optimized way is the real challenge. This can sometimes be achieved through algorithms and sometimes with our own logic. As programmers, we should know both algorithmic and logical approaches.&lt;/p&gt;

&lt;p&gt;Max Chunks to Make Sorted: To solve this problem, we can traverse through the input array and, for each traversal, find the maximum number in the array. Every time you find a new maximum number, keep track of the count. This count will be the result. This approach will solve the problem effectively.&lt;/p&gt;

&lt;p&gt;Find the Town Judge: To solve this problem, we first need to fully understand the problem statement. We need to identify the town judge, who trusts no one but is trusted by everyone else. Once we grasp the problem statement, solving it becomes straightforward.&lt;/p&gt;

&lt;p&gt;Maximum Subarray: To solve this problem, we can use Kadane’s Algorithm, which is one of the most efficient ways to solve it. Using this algorithm makes the problem much easier compared to my initial logic.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 39 Journal</title>
      <dc:creator>eashwar ammu</dc:creator>
      <pubDate>Tue, 17 Dec 2024 03:40:29 +0000</pubDate>
      <link>https://dev.to/vinnugollakoti/day-39-journal-193c</link>
      <guid>https://dev.to/vinnugollakoti/day-39-journal-193c</guid>
      <description>&lt;p&gt;Hi, Folks! Today, I solved three problems on LeetCode: Single Number, First Missing Positive, and Next Greater Element III. There are some common mistakes that most of us make myself included. For instance, when we come across an easy problem, we might be tempted to ignore it or use a familiar approach to quickly solve it, then move on without exploring further. However, it’s important to use resources to determine whether the solution you found is the most efficient one. If it’s not, take the time to learn the more efficient solution.&lt;/p&gt;

&lt;p&gt;Single Number is an easy problem, and I was familiar with one approach. However, I was curious to find the most efficient solution. When I discovered it, I was really surprised that the problem could be solved in such an efficient way.&lt;/p&gt;

&lt;p&gt;Similarly, when solving First Missing Positive and Next Greater Element III, it’s crucial to focus on building a solid logic first. Then, break it down into smaller steps this will simplify the process. Approaching problems in this way helps to develop better solutions.&lt;/p&gt;

&lt;p&gt;I hope my experience will be helpful to you.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
