Unit

Data Structure and Algorithm I

Learn Array Basics and Algorithms: Searching, Sorting, Two Pointers, Sliding Window, Prefix Sum, Binary Search, and Kadane's Algorithm with Curated LeetCode Practice
Array
Searching
Sorting
Two Pointers
Sliding Window
Prefix Sum
Kadane Algorithm
Binary Search

Duration

4 weeks

random shape
thumbnail image

Introduction

Welcome to Data Structures and Algorithms I, where we explore the fundamental building blocks of efficient problem-solving! This unit focuses on arrays and essential algorithms like searching, sorting, two pointers, sliding window, prefix sums, binary search, and Kadane's algorithm, equipping you with the skills to optimize solutions for real-world challenges. Through structured theory and curated LeetCode problems, you'll learn to transform brute-force approaches into optimized strategies, preparing you for technical interviews and competitive programming. Let's dive in and turn complexity into clarity—one algorithm at a time! 🚀

Prerequisites

  • We require you to have basic coding skills in a programming language. Please refer to the Basic Coding for Beginners Unit.

Skills Covered

In this unit, we are going to cover the following topics.
  • Basic concept of the Array data structure.
  • Searching & Sorting: Linear Search, Binary Search, Insertion Sort, Bucket Sort, Merge Sort, and Quick Sort.
  • Patterns & Algorithm: Two Pointers, Sliding Window, Prefix Sums, and Kadane's Algorithm.

Recommended Study Material

Array data structure
Learn the basics of Array Data Structure.
Array
Data Struture

Duration:

30 minutes

Insertion Sort
Learn about Insertion Sort and its implementation.
Array
Sorting
Insertion Sort

Duration:

30 minutes

Merge Sort
Learn about Merge Sort and its implementation.
Array
Sorting
Merge Sort

Duration:

1 hour

Quick Sort
Learn about Quick Sort and its implementation.
Array
Sorting
Quick Sort

Duration:

1 hour

Prefix Sum Pattern
Learn about Prefix Sum pattern.
Array
Prefix Sum

Duration:

15 minutes

Sliding Window Pattern
Learn about Sliding Window pattern.
Array
Sliding Window

Duration:

15 minutes

Two Pointers Pattern
Learn about Two Pointers pattern.
Array
Two Pointers

Duration:

15 minutes

Kadane's Algorithm
Learn about Kadane Algorithm and its usecase.
Array
Kadane's Algorithm

Duration:

15 minutes

Binary Search
Learn about Binary Search and its implementation.
Array
Binary Search

Duration:

20 minutes

Practice Problems

StatusBookmarkProblemDifficultyTagsSolution
Concatenation of ArrayEasy
Find Numbers with Even Number of DigitsEasy
Majority ElementEasy
Pascal's TriangleEasy
Remove Duplicates from Sorted ArrayEasy
Maximum Product of Two Elements in an Array (Using Insertion Sort)Easy
Merge Sorted ArrayEasy
Sort an Array (Using Merge Sort)Medium
Merge k Sorted ListsHard
Sort an Array (Using Quick Sort)Medium
Top K Frequent Elements (Using Bucket Sort)Medium
Maximum GapMedium
Sort ColorsMedium
Rotate Image*Medium
Kth Largest Element in an ArrayMedium
Count InversionsMedium
Range Sum Query 2D - ImmutableMedium
Product of Array Except SelfMedium
Valid SudokuMedium
Majority Element IIMedium
Subarray Sum Equals KMedium
First Missing PositiveHard
Remove ElementEasy
Reverse StringEasy
Valid PalindromeEasy
Valid Palindrome IIEasy
Two Sum II - Input Array Is SortedMedium
Rotate ArrayMedium
Container With Most WaterMedium
Boats to Save PeopleMedium
Next PermutationMedium
Maximum Value of an Ordered Triplet IIMedium
Minimum Sum of Mountain Triplets IIMedium
Trapping Rain WaterHard
Contains Duplicate IIEasy
Best Time to Buy and Sell StockEasy
Best Time to Buy and Sell Stock IIMedium
Longest Substring Without Repeating CharactersMedium
Longest Repeating Character ReplacementMedium
Minimum Swaps to Group All 1's Together IIMedium
Maximum Sum of Distinct Subarrays With Length K Medium
Substring with Concatenation of All WordsMedium
Permutation in StringMedium
Minimum Size Subarray SumMedium
Find K Closest ElementsMedium
Max Consecutive Ones IIIMedium
Minimum Window SubstringHard
Sliding Window MaximumHard
Special Array IEasy
Special Array IIMedium
Maximum SubarrayMedium
Maximum Sum Circular SubarrayMedium
Maximum Product SubarrayMedium
Best Sightseeing PairMedium
Binary SearchEasy
Search Insert PositionEasy
Guess Number Higher or LowerEasy
Sqrt(x)Easy
Search a 2D MatrixMedium
Koko Eating BananasMedium
Capacity To Ship Packages Within D DaysMedium
Find Minimum in Rotated Sorted ArrayMedium
Search in Rotated Sorted Array IIMedium
Count the Number of Fair PairsMedium
Split Array Largest SumHard
Median of Two Sorted ArraysHard
Find in Mountain ArrayHard

Credit

The problem set is carefully curated from Neetcode and AlgoMaster, supplemented with additional practice questions for comprehensive coverage.

Contributor(s)

John Doe

Founder and Fullstack Developer at freeCodeProject.org

Created this Unit with curated list of questions for practice.