Let’s solve a medium problem together on Leetcode.com: Count and Say

Thecount-and-saysequence is a sequence of digit strings defined by the recursive formula:

countAndSay(1) = "1"

countAndSay(n)is the way you would "say" the digit string from

countAndSay(n-1), which is then converted into a different digit string.

To…

Sorting algorithms are frequently asked during a technical interview. Several common sorting algorithms such as quicksort, selection sort, merge sort are usually applied to sorting a list. However, sorting a linked list is not straightforward: it’s not easy to access an element by index in constant running time. Most of…

A singly linked list is a set of linked nodes. Different from a singly linked list, each node in a doubly linked list has an extra pointer points to its previous node. Today, I’ll talk about the implementation of a doubly linked list in python.

- Node class

A doubly linked…

For the given island that’s represented in a matrix of 0's and 1's, we usually use a depth-first search or a breadth-first search algorithm to solve. Today, I’ll introduce how to solve and compare such a problem using both approaches.

Given a non-empty 2D array

`grid`

of 0's and 1's…

The sliding window algorithm is often used to find the target number in a string/list. Today, I’ll introduce how to solve this leetcode problem using the sliding window algorithm and optimize its running time.

You are given an array of integers

`nums`

, there is a sliding window of size`k`

…

We know tree well, a binary search tree performs well in searching. Today, I’ll introduce another tree-like data structure, which is widely used for retrieval of a key in a dataset of strings: trie.

A trie also called prefix-tree, is a type of search tree, a tree data structure used…

My previous post introduced the **Knapsack** problem. It states how to solve using the dynamic programming algorithm. Besides **Knapsack**, there’s one series of problems that you might encounter in a coding interview: the house robber problems. Today, let’s talk about it.

You are a professional robber planning to rob houses…

Dynamic programming problems are frequently asked in a tech interview. For me, dynamic programming problems are challenging to understand and to solve. Recently, I see a post demonstrating that dynamic programming problems can be categorized. One of the categories is the **Knapsack** problem. …

It’s often asked during a technical interview: write a function to get the subsets/combinations/permutations for a given set. These problems seem difficult to solve in the first place, but have similarities when applying the backtracking algorithm. In this post, I’ll illustrate how to solve these problems using the backtracking algorithm.

…