Programming

Demystifing Graph Algorithms

Demystifing Graph Algorithms

This is a complete guide to graph algorithms that you can rely on to practice for your next technical interview. No matter how complicated these concepts may seem, repeatedly getting familiar with different techniques and problems will make you more competent at solving them.

Greedy Algorithm and Dynamic Programming

Greedy Algorithm and Dynamic Programming

In an algorithm design there is no one 'silver bullet' that is a cure for all computation problems. Different problems require the use of different kinds of techniques. A good programmer uses all these techniques based on the type of problem. In this blog post, I am going to cover 2 fundamental algorithm design principles: greedy algorithms and dynamic programming

Divide and Conquer Algorithms

Divide and Conquer Algorithms

A very popular algorithmic paradigm, a typical Divide and Conquer algorithm solves a problem using following three steps:

  • Divide: Break the given problem into subproblems of same type.

  • Conquer: Recursively solve these subproblems

  • Combine: Appropriately combine the answers