algorithm notes: leetcode#238 product of array except self