https://ideas.creativecasinoties.com/post/leetcode-reflection-316-322-4tykwe