Implemented using a backtracking algorithm
Dharitri Dixit
The backtracking algorithm was implemented using an extremely large array and a hash table. If both implementations are ran, it can be noted that the hash table algorithm works better than the large array.
Java Library