0% found this document useful (0 votes)
130 views21 pages

Zero To Advance in DSA: 50 Days Challenge

This 50-day document provides a daily coding challenge focused on arrays, strings, recursion, hashing, matrices, linked lists, bit manipulation, stacks and queues, and trees. Each day introduces a new coding problem related to one of these data structures or algorithms and provides an opportunity for the reader to practice solving similar problems. The overall goal is to help develop problem solving abilities for tackling new coding challenges.

Uploaded by

Sumit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views21 pages

Zero To Advance in DSA: 50 Days Challenge

This 50-day document provides a daily coding challenge focused on arrays, strings, recursion, hashing, matrices, linked lists, bit manipulation, stacks and queues, and trees. Each day introduces a new coding problem related to one of these data structures or algorithms and provides an opportunity for the reader to practice solving similar problems. The overall goal is to help develop problem solving abilities for tackling new coding challenges.

Uploaded by

Sumit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Zero to Advance

in DSA
50 Days Challenge
*Disclaimer*
Everyone learns uniquely.

What matters is developing the problem


solving ability to solve new problems.

This Doc will help you with the same.

1
Day 1 #Arrays
Given an array of integers and an integer target, return indices of the two
numbers such that they add up to target.

Practice
Practice

Day 2 #Arrays
Given an integer array nums, find the subarray with the largest sum, and
return its sum.

Practice
Practice

Day 3 #Arrays
Given an array nums with n objects colored red, white, or blue, sort them in-
place so that objects of the same color are adjacent, with the colors in the
order red, white, and blue.

Practice
Practice

2
Day 4 #Arrays
Given an array nums of n integers, return an array of all the unique
quadruplets [nums[a], nums[b], nums[c], nums[d]] such that:

0 <= a, b, c, d < n

a, b, c, and d are distinct.

nums[a] + nums[b] + nums[c] + nums[d] == target

Day 5 #Arrays
Given an array of intervals where intervals[i] = [starti, endi], merge all
overlapping intervals, and return an array of the non-overlapping intervals
that cover all the intervals in the input.

Practice
Practice

Day 6 #Strings
Given a string s of '(' , ')' and lowercase English characters.

Your task is to remove the minimum number of parentheses ( '(' or ')', in any
positions ) so that the resulting parentheses string is valid and return any valid
string.

Practice
Practice

3
Day 7 #Strings
Given a string s, sort it in decreasing order based on the frequency of the
characters. The frequency of a character is the number of times it appears in
the string.

Return the sorted string. If there are multiple answers, return any of them.

Practice
Practice

Day 8 #Strings
Given two strings s1 and s2, return true if s2 contains a permutation of s1, or
false otherwise.

In other words, return true if one of s1's permutations is the substring of s2.

Practice
Practice

Day 9 #Strings
Given a string s, partition s such that every

Substring of the partition is a Palindrome. Return all possible palindrome


partitioning of s.

Practice
Practice

4
Day 10 #Strings
Given two strings s and t of lengths m and n respectively, return the minimum
window

Substring of s such that every character in t (including duplicates) is included


in the window. If there is no such substring, return the empty string "".

Practice
Practice

Day 11 #Recursion
Given the head of a linked list and an integer val, remove all the nodes of the
linked list that has Node.val == val, and return the new head.

Practice
Practice

Day 12 #Recursion
Given the head of a singly linked list, reverse the list, and return the reversed
list.

Practice
Practice

5
Day 13 #Recursion
Given an integer array nums of unique elements, return all possible 

Subsets (the power set).

The solution set must not contain duplicate subsets. Return the solution in
any order

Practice
Practice

Day 14 #Recursion
Given n pairs of parentheses, write a function to generate all combinations of
well-formed parentheses.

Practice
Practice

Day 15 #Hashing
Design a data structure that follows the constraints of a Least Recently Used
(LRU) cache.

Practice
Practice

6
Day 16 #Hashing
Given an unsorted integer array nums, return the smallest missing positive
integer.

You must implement an algorithm that runs in O(n) time and uses constant
extra space.

Practice
Practice

Day 17 #Matrices
Given an m x n matrix, return all elements of the matrix in spiral order.

Practice
Practice

Day 18 #Matrices
Determine if a 9 x 9 Sudoku board is valid. Only the filled cells need to be
validated according to the following rules:

Each row must contain the digits 1-9 without repetition.

Each column must contain the digits 1-9 without repetition.

Each of the nine 3 x 3 sub-boxes of the grid must contain the digits 1-9
without repetition.

Practice
Practice

7
Day 19 #Matrices
Given an m x n grid of characters board and a string word, return true if word
exists in the grid.

The word can be constructed from letters of sequentially adjacent cells,


where adjacent cells are horizontally or vertically neighboring. The same
letter cell may not be used more than once.

Practice
Practice

Day 20 #Linked List


Given the root of a binary tree, flatten the tree into a "linked list":

The "linked list" should use the same TreeNode class where the right child
pointer points to the next node in the list and the left child pointer is always
null.

The "linked list" should be in the same order as a pre-order traversal of the
binary tree.

Practice
Practice

8
Day 21 #Linked List
Given the head of a singly linked list, return true if it is a palindrome or false
otherwise.

Practice
Practice

Day 22 #Linked List


Given the head of a linked list, reverse the nodes of the list k at a time, and
return the modified list. k is a positive integer and is less than or equal to the
length of the linked list. If the number of nodes is not a multiple of k then left-
out nodes, in the end, should remain as it is.

You may not alter the values in the list's nodes, only nodes themselves may be
changed.

Practice
Practice

Day 23 #Linked List


You are given the heads of two sorted linked lists list1 and list2.

Merge the two lists in a one sorted list. The list should be made by splicing
together the nodes of the first two lists.

Return the head of the merged linked list.

Practice
Practice
9
Day 24 #Linked List
You are given two non-empty linked lists representing two non-negative
integers. The digits are stored in reverse order, and each of their nodes
contains a single digit. Add the two numbers and return the sum as a linked
list.

You may assume the two numbers do not contain any leading zero, except the
number 0 itself.

Practice
Practice

Day 25 #Linked List


Given a linked list, swap every two adjacent nodes and return its head. You
must solve the problem without modifying the values in the list's nodes (i.e.,
only nodes themselves may be changed.)

Practice
Practice

10
Day 26 #Bit Manipulation and Math

You are given two non-empty linked lists representing two non-negative
integers. The digits are stored in reverse order, and each of their nodes
contains a single digit. Add the two numbers and return the sum as a linked
list.

You may assume the two numbers do not contain any leading zero, except the
number 0 itself.

Practice
Practice

Day 27 #Bit Manipulation and Math

Given a linked list, swap every two adjacent nodes and return its head. You
must solve the problem without modifying the values in the list's nodes (i.e.,
only nodes themselves may be changed.)

Practice
Practice

Day 28 #Stacks and Queues

Given an array of integers heights representing the histogram's bar height


where the width of each bar is 1, return the area of the largest rectangle in the
histogram.

Practice
Practice

11
Day 29 #Stacks and Queues
Design a stack that supports push, pop, top, and retrieving the minimum
element in constant time.

Practice
Practice

Day 30 #Stacks and Queues


Implement a last-in-first-out (LIFO) stack using only two queues. The
implemented stack should support all the functions of a normal stack (push,
top, pop, and empty).

Practice
Practice

Day 31 #Stacks and Queues


Implement the BSTIterator class that represents an iterator over the in-order
traversal of a binary search tree (BST)

Practice
Practice

12
Day 32 #Stacks and Queues
Given n non-negative integers representing an elevation map where the width
of each bar is 1, compute how much water it can trap after raining.

Practice
Practice

Day 33 #Trees and Binary Search Trees


Given the root of a binary tree, return its maximum depth.

A binary tree's maximum depth is the number of nodes along the longest path
from the root node down to the farthest leaf node.

Practice
Practice

Day 34 #Trees and Binary Search Trees


Given a binary tree, find the lowest common ancestor (LCA) of two given
nodes in the tree.

Practice
Practice

13
Day 35 #Trees and Binary Search Trees
Given the root of a binary search tree, and an integer k, return the kth
smallest value (1-indexed) of all the values of the nodes in the tree.

Practice
Practice

Day 36 #Trees and Binary Search Trees


Given the root of a binary tree, return the level order traversal of its nodes'
values. (i.e., from left to right, level by level).

Practice
Practice

Day 37 #Trees and Binary Search Trees


You are given the root of a binary tree containing digits from 0 to 9 only.

Each root-to-leaf path in the tree represents a number.

For example, the root-to-leaf path 1 -> 2 -> 3 represents the number 123.Return
the total sum of all root-to-leaf numbers. Test cases are generated so that the
answer will fit in a 32-bit integer.

Practice
Practice

14
Day 38 #Trees and Binary Search Trees
Given the roots of two binary trees root and subRoot, return true if there is a
subtree of root with the same structure and node values of subRoot and false
otherwise.

Practice
Practice

Day 39 #Tries
A trie (pronounced as "try") or prefix tree is a tree data structure used to
efficiently store and retrieve keys in a dataset of strings. There are various
applications of this data structure, such as autocomplete and spellchecker.

Implement the Trie.

Practice
Practice

Day 40 #Tries
Given an array of strings strs, group the anagrams together. You can return
the answer in any order.

Practice
Practice

15
Day 41 #Heaps
Given the roots of two binary trees root and subRoot, return true if there is a
subtree of root with the same structure and node values of subRoot and false
otherwise.

Practice
Practice

Day 42 #Heaps
A trie (pronounced as "try") or prefix tree is a tree data structure used to
efficiently store and retrieve keys in a dataset of strings. There are various
applications of this data structure, such as autocomplete and spellchecker.

Implement the Trie.

Practice
Practice

Day 43 #Graphs
Given is a 2D adjacency list representation of a graph. Check whether the
graph is a Bipartite graph.

Practice
Practice

16
Day 44 #Graphs
An image is represented by an m x n integer grid image where image[i][j]
represents the pixel value of the image.

You are also given three integers sr, sc, and color. You should perform a flood
fill on the image starting from the pixel image[sr][sc].

Practice
Practice

Day 45 #Graphs
Given an m x n 2D binary grid grid which represents a map of '1's (land) and
'0's (water), return the number of islands.

An island is surrounded by water and is formed by connecting adjacent lands


horizontally or vertically. You may assume all four edges of the grid are all
surrounded by water.

Practice
Practice

Day 46 #Graphs
Given a reference of a node in a connected undirected graph.

Return a deep copy (clone) of the graph.

Practice
Practice

17
Day 47 #Graphs
Given an m x n integers matrix, return the length of the longest increasing
path in matrix.

From each cell, you can either move in four directions: left, right, up, or down.
You may not move diagonally or move outside the boundary (i.e., wrap-around
is not allowed).

Practice
Practice

Day 48 #Dynamic Programming


Given an integer array nums, find a subarray that has the largest product, and
return the product.

Practice
Practice

Day 49 #Dynamic Programming


Given two strings text1 and text2, return the length of their longest common
subsequence. If there is no common subsequence, return 0.

Practice
Practice

18
Day 50 #Dynamic Programming
There is a robot on an m x n grid. The robot is initially located at the top-left
corner (i.e., grid[0][0]). The robot tries to move to the bottom-right corner
(i.e., grid[m - 1][n - 1]). The robot can only move either down or right at any
point in time.

Given the two integers m and n, return the number of possible unique paths
that the robot can take to reach the bottom-right corner.

Practice
Practice

19
Why

Bosscoder?
1000+ Alumni placed at Top
Product-based companies.

More than 136% hike for every 



2 out of 3 working professional.

Average package of 24LPA.

Explore More

You might also like