LeetCode – Reorder List (Java)

Given a singly linked list L: L0→L1→ … →Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… For example, given {1,2,3,4}, reorder it to {1,4,2,3}. You must do this in-place without altering the nodes’ values. Java Solution Because the problem requires “in-place” operations, we can only change their pointers, not creating a new list. This problem can be solved … Read more

Leetcode – Longest Palindromic Substring (Java)

Finding the longest palindromic substring is a classic problem of coding interview. This post summarizes 3 different solutions for this problem. 1. Dynamic Programming Let s be the input string, i and j are two indices of the string. Define a 2-dimension array “table” and let table[i][j] denote whether a substring from i to j … Read more

Efficient Counter in Java

You may often need a counter to understand the frequency of something (e.g., words) from a database or text file. A counter can be easily implemented by using a HashMap in Java. This article compares different approaches to implement a counter. Finally, an efficient one will be concluded. UPDATE: Check out Java 8 counter, writing … Read more

Top 9 questions about Java Maps

In general, Map is a data structure consisting of a set of key-value pairs, and each key can only appears once in the map. This post summarizes Top 9 FAQ of how to use Java Map and its implemented classes. For sake of simplicity, I will use generics in examples. Therefore, I will just write Map instead of specific Map. But you can always assume that both the K and V are comparable, which means K extends Comparable and V extends Comparable.

Read more