## Coding Patterns: Longest Common Substring/Subsequence (DP)

In Coding Patterns series, we will try to recognize common patterns underlying behind each algorithm question, using real examples from Leetcode.

In Coding Patterns series, we will try to recognize common patterns underlying behind each algorithm question, using real examples from Leetcode.

In Coding Patterns series, we will try to recognize common patterns underlying behind each algorithm question, using real examples from Leetcode.

Graph theory is a branch of Mathematics, first introduced in 1736 when mathematician Carl Ehler introduced Leonhard Euler to the Seven Bridges of Königsberg ...

The Binary Search Tree (BST) is a Binary Tree with the following properties.

A hash table is an unordered collection of key-value pairs, where each key is unique. Also, they are the most commonly used data structure for implementing a...

The word heap is used in a couple of different context in Computer Science. A heap is sometimes refers to an area in the memory which is used for dynamic mem...

Binary Tree is a classical data structure in Computer Science. It is a non-linear data structure and formally a binary tree is either empty or a root node wi...

Stacks and Queues are two fundamental data structures often used in Computer Science.

Linked Lists are among the most common data structures used in computer science.

In Python, when people are talking about arrays, they are generally referring to lists. However, there is a fundamental difference between them which can be ...

Data structures -as their name suggests- are structures which can hold some data together. They are one of the most important fundamental concepts in Compute...

Tarjan’s algorithm1, 2 which runs in linear time is an algorithm in Graph Theory for finding the strongly connected components of a directed graph.

A greedy algorithm, as the name suggests, always makes the choice that seems to be the best at that moment. This means that it makes a locally-optimal choice...

Dynamic programming is all about breaking down an optimization problem into simpler sub-problems, and storing the solution to each sub-problem so that each s...

Sorting refers to arranging the given data in a particular format and it is one of the most common operations in Computer Science.

Searching for items and sorting through items are tasks that we do everyday. If a deck of cards has less than 52 cards, how do you determine which card is mi...

If programming is a craft, then it is best learned by imitation and lots of practice. These bit manipulation techniques are little programming tricks that ma...

If binary code is something only computers can understand, why should you learn about it?

Strings are one of the basic types that are built into the Python interpreter.1 You can create strings (str) by enclosing a sequence of characters within a p...