Back to all AlgoDaily courses

    Pointers and Windows

    To kick off the AlgoDaily Data Structures and Algorithms course, we'll discuss two important visual concepts you'll need to master: pointers and windows.

    Pointers and Windows covers the most common type of programming interview questions: those involving arrays, vectors, lists, and references. We first cover the basics of strings and arrays, then we go through some important structures (like sets) and techniques (like sliding window), before launching you into some exercises in the next few sections to practice your knowledge.

    Section Menu

    How do I use this section?

    1. LESSON

    A Gentle Refresher Into Arrays

    Let's take a scenic stroll through the world of arrays and strings and discover the connections between our everyday lives and computer science. We'll explore this fascinating subject through a structured and engaging lesson. Objective In this lesson, we will: Understand Arrays and Strings: Uncov...

    2. LESSON

    Stringing Together Strings

    Arrays With Characters A word with 4 characters ['M', 'O', 'N', 'A'] in a character array can be represented as follows: You see, each character gets a place in each index. Does this seem oddly familiar? There’s a more convenie...

    3. LESSON

    String Manipulation: Techniques and Best Practices

    Why String Manipulation Matters In the ever-evolving world of software development, string manipulation stands as a fundamental and vital skill. Strings are at the heart of human-readable data. Whether it's processing user input, reading files, generating dynamic content for web pages, or simply communicating between systems,...

    4. LESSON

    The Set Data Structure and Set Theory

    A big portion of data structures used in modern programming are directly translated from mathematics. One crucial example is the set data structure and its operations, derived from Set Theory. Understanding this data structure requires at least some prior knowledge of the mathematical perspective of th...

    5. LESSON

    Using the Two Pointer Technique

    The Two Pointer Technique The two pointer technique is a near necessity in any software developer's toolkit, especially when it comes to technical interviews. In this guide, we'll cover the basics so that you know when and how to use this technique. <img src="https://storage.googleapis.com/algodailyrandomassets/curriculum/arrays/two-p...

    6. LESSON

    A Bird’s Eye View into the Sliding Windows Algorithm Pattern

    A Bird’s Eye View into Sliding Windows Objective: In this lesson, we'll cover this concept, and focus on these outcomes: You'll learn what the sliding windows algorithm pattern is. We'll show you how and when to use sliding windows in programming interviews. We'll wal...

    7. LESSON

    The Binary Search Technique And Implementation

    Objective: This article will cover the binary search technique or pattern, one of the most commonly used methods to solve a variety of problems. By the end, you should: Be familiar with the binary search algorithm. See how it's used in interviews. Understand its complexities. Binary Sea...

    8. LESSON

    A Close Look at Merging Intervals

    Objective: In this lesson, we'll cover this concept, and focus on these outcomes: You'll learn what merging intervals means. We'll show you how to solve similar time-based, or interval-based problems in programming interviews. Let's study the Merge Intervals algorithm which is used to...

    9. LESSON

    Fundamental Sorting Algorithms: Bubble and Insertion

    This tutorial is about two fundamental, and basic, sorting algorithms. If you are new to sorting, I'd recommend you come up with your own algorithm for sorting arrays first, and then compare it with these algorithms. These fundamental sorting techniques give you important insights into: How to sort arrays How you can improve an algorit...

    10. LESSON

    Merge Sort vs. Quick Sort vs. Heap Sort

    In this tutorial, we are going to discuss three O (n log n) sorting techniques, their implementations, and how we derive their runtimes. The learning objectives of this tutorial are as follows: You will be able to apply the Divide-and-Conquer approach to different sorting methods. You will be able t...

    11. LESSON

    Prefix, Infix, Postfix Notation and Prefix Sums

    There are a few different ways to write arthimetic expressions in computer science. Infix, Postfix and Prefix notations are three different but equivalent ways of doing this and achieving the same result in the end. In this tutorial, we are going to explain these three, give some examples of their usage, and dig into the `Prefix Sums algorit...

    12. LESSON

    Cycling Through Cycle Sort

    In this lesson, we are going to study the Cycle Sort algorithm, which is one of the less commonly used sorting algorithms, but surprisingly useful in programming interviews. The Theory Th...