May 21, 2016
Julia took more than 10 hours to play with the tree traversal algorithm. Then, she likes to write down the algorithm bug free within 20 - 30 minutes. It is a warm up practice. Just enjoy the adventure and see how many issues are not resolved.
Here is the second blog she worked on more than 10 hours on May 22, 2016:
http://juliachencoding.blogspot.ca/2016/05/leetcode-236-lowest-common-ancestor.html
Previous blogs: (April 22, 2016)
http://juliachencoding.blogspot.ca/2016/04/find-lowest-common-ancestor-of-two.html
http://juliachencoding.blogspot.ca/2015/07/leetcode-lowest-common-ancestor-in.html
Review solutions again:
https://github.com/jianminchen/LowestCommonAncestorInBinaryTree/blob/master/LowestCommonAncestorB.cs
Now, start her warm up practice:
May 21, 2016 9:18pm - 9:48pm - 30 minutes taken
https://gist.github.com/jianminchen/5aa398b8c6e9f13c5a11213ef03cb5bc
Julia found out a few things:
1. First, a new variable is added: stopTraversal on line 49.
When both two nodes p and q are found, stop to traversal the binary tree.
Julia also learned how to break two while loop:
C# does not allow two "break; ", complaining that the second "break; " unreachable.
4 lines are added:
line 49, line 69, line 76, line 77.
set StopTraversal = true, and then, break the inside while loop, next to the while loop, check
if(StopTraversal == true) then, break outside loop.
The code Julia studied and practiced before just break inside while loop only. So, here is the change.
line 74 in the following version needs some extra work:
https://gist.github.com/jianminchen/388114d99020972413464a072e5e9a9b
2. Julia forget to declare the stack at the beginning, and also, declare two lists for p and q.
Question and answer:
1. Why do the warm up practice right away?
Answer:
Julia knows the importance to learn an algorithm a time. Keep working on the code, until it works perfectly, until she makes all mistakes and learns lessons. Afterwards, she may start to learn to analyze the algorithm, even memorize the algorithm easily.
The code is executable, optimized, every line is executed and she pays some attention on them how to optimize.
Practice makes perfect. Show progress, that is mental toughness, that is value of sharing - document progression to excellence.
2. Write C# version based on the blog:
http://www.geeksforgeeks.org/lowest-common-ancestor-binary-tree-set-1/
From January 2015, she started to practice leetcode questions; she trains herself to stay focus, develops "muscle" memory when she practices those questions one by one. 2015年初, Julia开始参与做Leetcode, 开通自己第一个博客. 刷Leet code的题目, 她看了很多的代码, 每个人那学一点, 也开通Github, 发表自己的代码, 尝试写自己的一些体会. She learns from her favorite sports – tennis, 10,000 serves practice builds up good memory for a great serve. Just keep going. Hard work beats talent when talent fails to work hard.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment