http://leetcode.com/onlinejudge#question_62
http://leetcode.com/onlinejudge#question_41
http://leetcode.com/onlinejudge#question_120
http://leetcode.com/onlinejudge#question_120
http://leetcode.com/onlinejudge#question_63
http://leetcode.com/onlinejudge#question_63
http://leetcode.com/onlinejudge#question_63