# Solving Minimum Coin Change

For many people that are preparing for coding interviews, the fear of dynamic programming (DP) questions is quite common. This is in part due to the type of problems that often requires DP to solve. These questions often concern combinatorics and repetitive calculations.

Now, if someone was learning about DP…

# Algorithms on Graphs: Heaps Demystified

Much of the algorithms we’ll be discussing in this series will require us to efficiently pull the lowest values in a set of unsorted numbers without looking at every number in the list.

While sorting or traversing a list may appear to be efficient, it gets rather expensive when we…

# Algorithms on Graphs: Simplifying DAGs with Topological Sort

One of the difficulties in dealing with directed acyclic graphs (DAGs) is that they can look complicated and messy. This makes it difficult to see the relationships that vertices have with each other.

In this post, we’re going to discuss and learn how to rearrange the vertices of DAGs in…

# Algorithms on Graphs: Directed Graphs and Cycle Detection

By now, we have an understanding of what a graph is and learned some of the methods in traversing them.

While, we’ve already seen directed graphs, it’s time to get a formal understanding of them and uncover exciting properties that come along with their nature.

In this post, we’ll be…

# Algorithms on Graphs: Let’s talk Depth-First Search (DFS) and Breadth-First Search (BFS)

One thing that we’ll be doing a lot with the algorithms in this series is graph traversal. What does this mean exactly?

Basically, the idea is that we’ll be moving around the graph from one vertex to another and discovering the properties of their interconnected relationships.

Two of the most…

# Algorithms on Graphs: What is a graph?

To simply put it, a graph is a collection of vertices and a collection of edges such that each edge connects a pair of vertices together. A visual representation would be: 