Implement a versioned hash map with snapshot | Lead Bank Interview Question