Autocomplete with trie – Code

Autocomplete with trie java

Autocomplete is a feature that search box returns the suggestions based on what you have typed. Autocomplete with trie provides an implementation of auto-complete by using data structure trie. A trie is a tree-like data structure in which every node stores a character. After building the trie, strings or substrings …

Continue reading

Word break using memoization – Code

wordbreak with memoization

Word break is to divide a string into sub-strings that defined in dictionary. The problem is usually solved with recursion. The time complexity is exponential. Here we introduce word break using memoization, which helps to improve complexity. Memoization is one of Dynamic programming(DP) techniques. DP is able to solve a …

Continue reading

Shortest path from source to destination in matrix – Code

shortest path in matrix

Shortest path in matrix is to find the shortest distance from the the source to the destination. As you know, graph can be represented as adjacent matrix. Therefore, we can use the Breadth First Search algorithm in graph to solve this problem. BFS starts from the source node. It explores …

Continue reading

Shortest path and 2nd shortest path using Dijkstra – code

shortest path using Dijkstra java

What is Dijkstra’s algorithm? Dijkstra’s algorithm is an algorithm to find the shortest paths between vertices in a graph. It uses greedy technique by picking the un-visited vertex with the lowest distance. When all vertices have been evaluated, the result is the shortest path. Find 2nd shortest path is a …

Continue reading

Build hierarchy tree – Code

Build hierarchy tree java

Build hierarchy tree reads employee data and build a corporation hierarchy tree from the list. HashMap plays important role to store the data when reading the input. The trick of this question is to find the root. You can get the root by finding the employee without the manager. Starting …

Continue reading

Web scrape and parsing in Java (5 Ways)

web scrape

Internet is the great resource to get information, for study, business or hobby. There are many ways of information retrieval with web scrape and parsing from Internet. All programing languages provide the libraries to do so. In this post, I introduce 5 ways of web scrape and parsing. 1. HttpURLConnection …

Continue reading

Get suggested friends (2 solutions) – code

suggested friends

When you are asked to design the data structures for social network, normally the answer is graph. In the graph, We can use DFS or BFS to find the connections between people. Alternatively, we can also use Union find to group the people by their connections. Here we provide solutions …

Continue reading

Prefix to postfix (2 solutions) – Code

Prefix To Postfix

In mathematics expressions, there are infix, prefix and postfix notations. Infix notation is characterized by the placement of operators between operands. For example, the plus sign in 2 + 2. Prefix notation is a notation in which operators precede their operands, such as + 3 4. Postfix notation is a …

Continue reading

Combinations of adding operators and parentheses

combinations of operators and parentheses

DFS (Depth first search) with memoization has been introduced in the post of word break using memoization. It uses one of dynamic programming technique “memoization” to save previous results and used for the following recursive steps. This will avoid overlapping and improve complexity. This interview question is another example to …

Continue reading

Find Least common set with union find – code

find least common set

When we have number of sets, and need to group them into joint and disjoint-sets, union–find is the algorithm to go. This question is one step further, we need to find least common set with union find. What is union find? Union-find is to stores data in non-overlapping sets (ie …

Continue reading