0% found this document useful (0 votes)
83 views37 pages

Master DSA in 60 Days

The document outlines a 60-day plan for mastering Data Structures and Algorithms (DSA), featuring daily coding problems categorized by difficulty, primarily focusing on easy to medium challenges. Each day presents specific problems such as 'Two Sum', 'Valid Parentheses', and 'Merge Two Sorted Lists', along with their descriptions and requirements. The document also promotes courses offered by Tutort Academy related to DSA and software development.

Uploaded by

misojek222
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)
83 views37 pages

Master DSA in 60 Days

The document outlines a 60-day plan for mastering Data Structures and Algorithms (DSA), featuring daily coding problems categorized by difficulty, primarily focusing on easy to medium challenges. Each day presents specific problems such as 'Two Sum', 'Valid Parentheses', and 'Merge Two Sorted Lists', along with their descriptions and requirements. The document also promotes courses offered by Tutort Academy related to DSA and software development.

Uploaded by

misojek222
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/ 37

MASTER

DSA
In Just 60 Days
Day 1

Easy
Two Sum
Given an array of integers nums and an integer target ,
return indices of the two numbers such that they add up
to target
You may assume that each input would have exactly one
solution, and you may not use the same element twice.
You can return the answer in any order.

Practice Question Asked in:

Easy
Valid Parentheses
Given a string s containing just the characters '(' , ')' , '{' ,
'}', '[' & ']' , determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of
brackets. Open brackets must be closed in the correct
order.
Every close bracket has a corresponding open bracket of
the same type.

Practice Question Asked in:

Curated by
Day 2

Easy
Merge Two Sorted Lists

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 Question Asked in:

Easy
Best Time to Buy and Sell Stock

You are given an array prices where prices[i] is the price

of a given stock on the ith day.

You want to maximize your profit by choosing a single

day to buy one stock and choosing a different day in the

future to sell that stock.

Return the maximum profit you can achieve from this

transaction. If you cannot achieve any profit, return 0

Practice Question Asked in:

Curated by
Day 3

Easy
Valid Palindrome

A phrase is a palindrome if, after converting all

uppercase letters into lowercase letters and removing all

non-alphanumeric characters, it reads the same forward

and backward. Alphanumeric characters include letters

and numbers.

Given a string s return true if it is a palindrome, or false

otherwise.

Practice Question Asked in:

Day 4

Easy
Invert Binary Tree

Given the root of a binary tree, invert the tree, and return

its root

Practice Question Asked in:

Curated by
Day 5

Easy
Valid Anagram

Given two strings s and t , return true if t is an anagram of

s , and false otherwise.

An Anagram is a word or phrase formed by rearranging

the letters of a different word or phrase, typically using all

the original letters exactly once.

Practice Question Asked in:

Day 6

Easy
Binary Search

Given an array of integers nums which is sorted in

ascending order, and an integer target , write a function

to search target in nums . If target exists, then return its

index. Otherwise, return -1 .

You must write an algorithm with 0(log n) runtime

complexity.

Practice Question Asked in:

Curated by
Day 7

Easy
Flood Fill

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] .

Return the modified image after performing the flood fill.

Practice Question Asked in:

Courses Offered by Tutort Academy

Data Structures and Full Stack Specialisation In

Algorithms
 Software Development

with System Design

Learn more Learn more

Curated by
Day 8

Easy
Lowest Common Ancestor of a Binary

Search Tree

Given a binary search tree (BST), find the lowest common

ancestor (LCA) node of two given nodes in the BST.

According to the definition of LCA on Wikipedia: “The

lowest common ancestor is defined between two nodes p

and q as the lowest node in T that has both p and q as

descendants (where we allow a node to be a

descendant of itself).”

Practice Question Asked in:

Day 9

Easy
Lowest Common Ancestor of a Binary

Search Tree

Given a binary tree, determine if it is height-balanced.

Practice Question Asked in:

Curated by
Day 10

Easy
Linked List Cycle

Given head , the head of a linked list, determine if the

linked list has a cycle in it.

There is a cycle in a linked list if there is some node in the

list that can be reached again by continuously following

the next pointer . Internally, pos is used to denote the

index of the node that tail's next pointer is connected

to. Note that pos is not passed as a parameter.

Return true if there is a cycle in the linked list. Otherwise,

return false .

Practice Question Asked in:

From To

Success

Akansha
Story

Likhdhari

Curated by
Day 11

Easy
First Bad Version

Suppose you have n versions [1, 2, ..., n] and you want to

find out the first bad one, which causes all the following

ones to be bad.

You are given an API bool isBadVersion(version) which

returns whether version is bad. Implement a function to

find the first bad version.

Practice Question Asked in:

Day 12

Easy
Ransom Note

Given two strings ransomNote and magazine , return true

if ransomNote can be constructed by using the letters

from magazine and false otherwise.

Each letter in magazine can only be used once in

ransomNote

Practice Question Asked in:

Curated by
Day 13

Climbing Stairs Easy


You are climbing a staircase. It takes n steps to reach the
top.
Each time you can either climb 1 or 2 steps. In how many
distinct ways can you climb to the top?

Practice Question Asked in:

Day 14

Longest Palindrome Easy


Given a string s which consists of lowercase or uppercase
letters, return the length of the longest palindrome that
can be built with those letters.
Letters are case sensitive, for example, "Aa" is not
considered a palindrome here.

Practice Question Asked in:

Curated by
Day 15

Easy
Add Binary

Given two binary strings a and b return their sum as a

binary string. s

Practice Question Asked in:

Day 16

Easy
Diameter of Binary Tree

Given the root of a binary tree, return the length of the

diameter of the tree.

The diameter of a binary tree is the length of the longest

path between any two nodes in a tree. This path may or

may not pass through the root

Practice Question Asked in:

Curated by
Day 17

Easy
Middle of the Linked List

Given the head of a singly linked list, return the middle

node of the linked list.

If there are two middle nodes, return the second middle

node.

Practice Question Asked in:

Day 18

Easy
Maximum Depth of Binary Tree

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 Question Asked in:

Curated by
Day 19

K Closest Points to Origin Medium


Given an array of points , where points[i] = [xi, yi]
represents a point on the X-Y plane and an integer k ,
return the k closest points to the origin (0, 0)
You may return the answer in any order. ,

Practice Question Asked in:

Day 20

Longest Substring Without Repeating


Medium
Characters
Given a string s find the length of the longest substring
without repeating characters.

Practice Question Asked in:

Curated by
Day 21

3Sum Medium
Given an integer array nums, return all the triplets

[nums[i], nums[j], nums[k]] such that i != j , i != k and j !


= k , and nums[i] + nums[j] + nums[k] == 0
Notice that the solution set must not contain duplicate
triplets.

Practice Question Asked in:

Day 22

Binary Tree Level Order Traversal Medium


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 Question Asked in:

Curated by
Day 23

Clone Graph Medium


Given a reference of a node in a connected undirected
graph. ,
Return a deep copy (clone) of the graph.

Practice Question Asked in:

Day 24

Evaluate Reverse Polish Notation Medium


You are given an array of strings tokens that represents
an arithmetic expression in a Reverse Polish Notation.
Evaluate the expression. Return an integer that represents
the value of the expression.

Practice Question Asked in:

Curated by
Day 25

Course Schedule Medium


There are a total of numCourses courses you have to
take, labeled from 0 to numCourses - 1 . You are given an
array prerequisites where prerequisites[i] = [ai, bi]
indicates that you must take course bi first if you want to
take course ai .
Return true if you can finish all courses. Otherwise, return
false .

Practice Question Asked in:

Courses Offered by Tutort Academy

Data Structures and Full Stack Specialisation In


Algorithms
 Software Development
with System Design

Learn more Learn more

Curated by
Day 26

Medium
Implement Trie (Prefix Tree)

Implement the Trie class:

Trie() Initializes the trie object.

void insert(String word) Inserts the string word into the

trie.

boolean search(String word) Returns true if the string

word is in the trie

boolean startsWith(String prefix) Returns true if there is a

previously

inserted string word that has the prefix.

Practice Question Asked in:

From To

Success

Ashish Joshi
Story

Curated by
Day 27

Coin Change Medium

You are given an integer array coins representing coins of

different denominations and an integer amount

representing a total amount of money.

Return the fewest number of coins that you need to make

up that amount. If that amount of money cannot be

made up by any combination of the coins, return -1

Practice Question Asked in:

Day 28

Product of Array Except Self Medium

Given an integer array nums return an array answer such

that answer[i] is equal to the product of all the elements

of nums except nums[i]

You must write an algorithm that runs in O(n) time and

without using the division operation.

Practice Question Asked in:

Curated by
Day 29

Min Stack Medium


Design a stack that supports push, pop, top, and
retrieving the minimum element in constant time.
Implement the MinStack class:
MinStack() initializes the stack object.
void push(int val) pushes the element val onto the
stack.
void pop() removes the element on the top of the
stack.
int top() gets the top element of the stack.
int getMin() retrieves the minimum element in the
stack.

You must implement a solution with O(1) time complexity


for each function.:

Practice Question Asked in:

Curated by
Day 30

Validate Binary Search Tree Medium


Given the root of a binary tree, determine if it is a valid
binary search tree (BST).

Practice Question Asked in:

Day 31

Number of Islands Medium


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 Question Asked in:

Curated by
Day 32

Medium
Rotting Oranges

You are given an m x n grid where each cell can have one

of three values:

0 representing an empty cell,

1 representing a fresh orange, or

2 representing a rotten orange.

Return the minimum number of minutes that must elapse

until no cell has a fresh orange. If this is impossible, return

-1

Practice Question Asked in:

Career Hiring
Highest

1250+ Transitions 350+ Partners 2.1CR CTC

One of the best institutes for getting started with DSA and System Design.
Placed at
It also assisted me in launching my technical career and in honing my

problem-solving and coding abilities. I was placed in more than 6+

product based companies because of their constant support.


Ajay Kumar

Curated by
Day 33

Search in Rotated Sorted Array Medium


There is an integer array nums sorted in ascending order
(with distinct values).
Given the array nums after the possible rotation and an
integer target return the index of target if it is in nums , or
-1 is not in nums
You must write an algorithm with O(log n) runtime
complexity.

Practice Question Asked in:

Day 34

Combination Sum Medium


Given an array of distinct integers candidates and a
target integer candidates target return a list of all unique
combinations of candidates where the chosen numbers
sum to target You may return the combinations

in any order.

Practice Question Asked in:

Curated by
Day 35

Permutations Medium
Given an array nums of distinct integers, return all the
possible permutations. You can return the answer in any
order.

Practice Question Asked in:

Day 36

Merge Intervals Medium


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 Question Asked in:

Curated by
Day 37

Medium
Lowest Common Ancestor of a

Binary Tree

Given a binary tree, find the lowest common ancestor

(LCA) of two given nodes in the tree.

Practice Question Asked in:

Day 38

Medium
Time Based Key-Value Store

Implement the TimeMap class:

TimeMap() Initializes the trie object.

void set(String key, String value, int timestamp)

String get(String key, int timestamp)

Practice Question Asked in:

Curated by
Day 39

Accounts Merge Medium


Given a list of accounts where each element accounts[i]
is a list of strings where the first element accounts[i][0] is
a name, and the rest of the elements are emails
representing emails of the account.
After merging the accounts, return the accounts in the
following format: the first element of each account is the
name, and the rest of the elements are emails in sorted
order. The accounts themselves can be returned in any
order.

Practice Question Asked in:

Courses Offered by Tutort Academy

Data Structures and Full Stack Specialisation In


Algorithms
 Software Development
with System Design

Learn more Learn more

Curated by
Day 40

Sort Colors Medium

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.

You must solve this problem without using the library's

sort function.

Practice Question Asked in:

Day 41

String to Integer (atoi) Medium

Implement the myAtoi(string s) function, which converts

a string string to a 32-bit signed integer (similar to C/C+

+'s atoi function).

Return the integer as the final result.

Practice Question Asked in:

Curated by
Day 42

Spiral Matrix Medium


Given an m x n matrix return all elements of the matrix in

spiral order.

Practice Question Asked in:

Day 43

Subsets Medium
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 Question Asked in:

Curated by
Day 44

Medium
Binary Tree Right Side View

Given the root of a binary tree, imagine yourself standing

on the right side of it, return the values of the nodes you

can see ordered from top to bottom.

Practice Question Asked in:

Day 45

Medium
Longest Palindromic Substring

Given a string s return the longest Palindromic Substring

in s

Practice Question Asked in:

Why Tutort Academy?

Guaranteed
Hiring
Highest

100% Job Referrals 350+ Partners 2.1CR CTC

Curated by
Day 46

Unique Paths Medium


There is a robot on an m x n grid. The robot is initially
located at the top-left corner. The robot tries to move to
the bottom-right corner 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 Question Asked in:

Day 47

Construct Binary Tree from Preorder


Medium
and Inorder Traversal
Given two integer arrays preorder and inorder where
preorder is the preorder traversal of a binary tree and
inorder is the inorder traversal of the same tree, construct
and return the binary tree.

Practice Question Asked in:

Curated by
Day 48

Container With Most Water Medium

You are given an integer array height of length n . There


are n vertical lines drawn such that the two endpoints of
the ith line are (i, 0) and (i, height[i])
Return the maximum amount of water a container can
store.

Practice Question Asked in:

Day 49

Find All Anagrams in a String Medium

Given two strings s and p , return an array of all the start


indices of p ‘s anagrams in s . You may return the answer
in any order.

Practice Question Asked in:

Curated by
Day 50

Minimum Height Trees Medium


Given a tree of n nodes labelled from 0 to n-1 and an
array of n-1 edges where edges[i] = [ai, bi] indicates that
there is an undirected edge between the two nodes in the
tree, you can choose any node of the tree as the root.
Return a list of all MHTs' root labels. You can return the
answer in any order.

Practice Question Asked in:

Day 51

Task Scheduler Medium


Given a characters array tasks , representing the tasks a
CPU needs to do, where each letter represents a different
task. Tasks could be done in any order. Each task is done
in one unit of time.
Return the least number of units of times that the CPU will
take to finish all the given tasks.

Practice Question Asked in:

Curated by
Day 52

Medium
LRU Cache

Design a data structure that follows the constraints of a

Least Recently Used (LRU) cache.

Implement the LRUCache class:

LRUCache(int capacity) Initialize the LRU cache with

positive size capacity

int get(int key) Return the value of the key if the key

exists.

void put(int key, int value) Update the value of the key

Practice Question Asked in:

Day 53

Medium
Kth Smallest Element in a BST

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 Question Asked in:

Curated by
Day 54

Minimum Window Substring Hard

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 “”

The testcases will be generated such that the answer is


unique.

Practice Question Asked in:

Day 55

Find Median from Data Stream Hard

The median is the middle value in an ordered integer list.


If the size of the list is even, there is no middle value, and
the median is the mean of the two middle values.

For example, for arr = [2,3,4] , the median is 3

For example, for arr = [2,3] , the median is (2 + 3) / 2 =


2.5

Practice Question Asked in:

Curated by
Day 56

Hard
Word Ladder

A transformation sequence from word beginWord to

word endWord using a dictionary wordList is a sequence

of words beginWord -> s1 -> s2 -> ... -> sk such that:

Given two words, beginWord and endWord , and a

dictionary wordList , return the number of words in the

shortest transformation sequence from beginWord to

endWord , or 0 if no such sequence exists.

Practice Question Asked in:

Day 57

Hard
Basic Calculator

Given a string s representing a valid expression,

implement a basic calculator to evaluate it, and return

the result of the evaluation.

Practice Question Asked in:

Curated by
Day 58

Maximum Profit in Job Scheduling Hard


We have n where every job is scheduled to be done from

startTime[i] to endTime[i] , obtaining a profit of profit[i]


Return the maximum profit you can take such that there
are no two jobs in the subset with overlapping time range.

Practice Question Asked in:

Day 59

Merge k Sorted Lists Hard


You are given an array of k linked-lists lists , each linked-
list is sorted in ascending order.
Merge all the linked-lists into one sorted linked-list and
return it.

Practice Question Asked in:

Curated by
Day 60

Hard
Largest Rectangle in Histogram

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 Question Asked in:

Courses Offered by Tutort Academy

Data Structures and Full Stack Specialisation In

Algorithms
 Software Development

with System Design

Learn more Learn more

Curated by
Start Your
Upskilling with us
Explore our courses

Data Structures and Full Stack Specialisation



Algorithms
 In Software
with System Design Development

www.tutort.net

Watch us on Youtube Read more on Quora

Follow us on

You might also like