Friday, August 31, 2018

What is the best target for a software programmer?

August 31, 2018

Introduction


It is 8:54 PM Friday evening, I like to write a blog related to my research "What is the best target for a software programmer to set a training target?". Today I found a Google programmer who completed 837 algorithms, 1661 submission in the last year. I ask myself what if I set a target for myself, next 12 months, what is number I can reach?

I have worked on Leetcode.com over three years starting from 2015 January, but I only solved 177 algorithms, but last 77 algorithms are solved in less than 3 months.

Target, motivation, and learning ability 


I like to improve my learning ability, set a good target on Leetcode.com algorithms.

Let us read some data.

The person is ranking 70 on Leetcode.com. My ranking is 50931. My ex-coach's ranking is 3000, solved algorithm 525/ 889.


I like to use this ranking metrics as my target. I like to document how hard it is to move ranking up to 40000, 30000, 20000, 10000, 5000. 

New metrics


The ranking is my target. I like to see if I solve another 120 easy algorithms in next one or two months, with 300 solved algorithms, what will be my ranking. I like to choose to work on another 120 easy level algorithm. Since it is easy to work on, and I need to get more experience to solve the problems first. 



All profiles are from the discussion panel here

I just quickly use this profile to look into with solved 300 algorithm, the ranking will be 15937. Here is the profile. Here is linkedin profile. I just could not believe that the engineer is a Facebook engineer.

Ranking 15618, solved 327 algorithms, 47 contests, here is profile of Citrix software engineer.
Ranking 16619, solved 319 algorithms, here is profile.
Ranking 23050, solved 277 algorithms, here is the profile.

My target - find 300 algorithm to solve 


It is not easy for me to work on algorithms. Some of us can finish 300 medium algorithm in 3 months. Some of us can finish 180 algorithms in 3 months.

I know that it takes a lot of work to focus on the algorithm practice. I have to focus on coding, cut down the hours to do other activities.

And also I need to be very smart, also focus on the algorithm, pass online judge. Do not think about algorithms too long. It does not help too much to reach target.

It is good practice to start from easy level algorithm, solve 150 easy level algorithm, and then move on medium level algorithms.

I have to be careful not to waste time. Pay attention to any project longer than three hours. Most important is to get used to solve algorithm problems. I need to get myself comfortable and also try to figure out the ways to expedite the coding.

It is good to try various solutions for one algorithm. But in order to expedite the process, it is better to move on new algorithm, save time for the new algorithm.



I have fight good fight, I have finished the race, I have kept the faith. Timothy 4:7-8
My favorite verse is here



Thursday, August 30, 2018

Leetcode 448. Find All Numbers Disappeared in an Array



Here is my Leetcode discuss link.

Leetcode 448. Find All Numbers Disappeared in an Array - My struggle

August 30, 2018

Introduction


I have to figure out how to complete my broken solution afterwards. I found the optimal solution by reading one of discuss, I wrote the similar one. But I like to continue to write the one much complicated, and then I need to figure out how to make it work as well.

My idea is too complicated and I could not come out the solution. My design is like the following.

[3, 1, 2],
Line 1:  First, index = 0, value 3, so 3 should be put at index = 2,
         2: Next, index = 0, put -1,
         3: Next, index = 2, value 2 is save as a variable
         4: Next, index = 2, put 3,
         5: Next, work on value 2, put its position to index = 1 if need.
I introduce negative one value as the array's temporary value, the change brings into so many user cases. It affects line 5, line 1. The value has to be checked first, since now there is an empty element concept now.

The lesson learned is that I have to evaluate all options first, it is better to choose easy and short solution to write. Evaluate user cases before I write code for the solution.

My practice 


I found out that I could not make the code working, since there are so many cases to handle related to -1 value.

I chose to use extra space to save some elements in the array. And I wrote C# code to pass the test cases. Here is my C# practice.


Leetcode 169. Majority element

August 30, 2018

Introduction


It is an easy level array algorithm. I wrote the solution based on the idea to iterate the array from left to right once, and majority element will keep change, but last one will be the majority element.

My practice


Here is my sharing on Leetcode discuss.


Leetcode 717. 1-bit and 2-bit characters

August 30, 2018

Introduction


It is an easy level algorithm using dynamic programming solution. I stumbled on the solution a few times, I had to fix bugs three times in order to pass online judge.

The algorithm is my favorite one now. I know that the algorithm practice is also good training for me. Sometimes I notice that I need more training to understand the statement "the last character must be a one-bit character". I failed a few times since I did not memorize the requirement, I confused that the expression is valid to express the number.

My practice


I like to write something to share my practice. Here is Leetcode discuss link.


Leetcode 746: Min cost climbing stairs

August 30, 2018

Introduction


It is an easy level algorithm and I wrote a solution using dynamic programming.

My practice


I need to write a few sentences to summarize my approach and then share the code. Here is my sharing on Leetcode discuss.

Case study: Google interview algorithm

August 30, 2018

Introduction


I came cross this post with more 30,000 views. Here is the link. It is a good break for me to read something related to onsite interview algorithm.


Google search keyword: leetcode jianmin.chen.39

August 30, 2018

Introduction


For some reason Leetcode.com removed the feature to list all sharing for each user. I wondered what I should do, then I came cross this Google search result page, using keyword: Leetcode jianmin.chen.39, I can easily track how many sharings I have posted so far. Here is the link of search result.

I like to track how many sharing I have posted, and I like to get more active in Leetcode.com community. That will be the best place I learn and share next few months.

15 algorithm discuss sharing


I can easily find first two pages with around 15 algorithms I wrote something for sharing. I have posted more than 15 times, I like to figure out how to find them.


Medium.com claps product feature

August 30, 2018

Introduction


It is small surprise that I can read my claps on medium.com. Here is the link. I like the claps feature, it really helps me to stay organized, I can easily review those articles I chose to clap.




Wednesday, August 29, 2018

Easy level algorithms - 2 easy level algorithm a day for 17 days

August 28, 2018

Introduction


Starting from July 10, I started to work on easy level algorithms on Leetcode.com. Here is my status on Leetcode.com, 179/889 solved, easy 91, medium 63, hard 33. I also created a folder for easy level algorithms on github, here is the link.

August 13, 2018
August 30, 2018


Google search


I just find out that Google search does good job, when I search "jianmin chen leetcode", all sharings of my practice are listed. Here is the link for search result. 


2 easy level algorithms a day 



It is slow in the average, 2 easy level algorithms a day, from August 13 to August 30, I finished 34 easy level algorithms. I like to learn how I can work on easy level algorithm in one hour, I can finish 3 algorithms without any headache, nervousness, and bugs catched by Leetcode online judge.

To be a professional software programmer, it is so important for me to learn that training is so important, and also very serious part to continue to make a living as a software programmer.

I think that using easy level algorithm to train myself is necessary and I understand that it is also very important for me to ensure that I can keep myself think hard and work hard on crafting skills.

There is difference with two people, one training every day, one does not train at all in the sports. Same as a software programmer, one month ago I will show up so nervous, since I do not get enough training daily, continuously over years from 2000 to 2018.


Leetcode 674

Leetcode 27

Leetcode 118

How to break the nervousness?

August 29, 2018

Introduction


It is 11:29 PM and I like to do some research how to make changes in order to feel relax and less nervous when I work on algorithm problem solving.

Ideas please


One of ideas is to share every easy level algorithm on Leetcode.com. I have to push myself to write something and share with the community. Therefore, I will improve my communication skills and have chance to write something every day, not just algorithm, C# code, and also some technical detail related to the algorithm.

Another thing I can do is to work on algorithm problem solving every day. At least I should try to solve 3 to 5 easy level algorithms every day. At the beginning, I may find that it is hard and easy to get tired or nervous.



Leetcode 724. Find pivot index

August 29, 2018

Introduction


It is an easy level algorithm called find pivot index. I wrote a solution once I had only one idea.

My practice


Here is the discussion link I shared. I found the bug using compiler and then in the function calculateSuffixSum I declared a variable index, and suffix[index] is assigned value instead of suffix[i].


Leetcode 671. Second minimum node in a binary tree

August 29, 2018

Introduction


It was my 10:00 PM mock interview, so I randomly chose one easy level tree algorithm. I chose Leetcode 671 and asked the interviewee to work on the algorithm. I had time to review the algorithm, and spend time to discuss with the interviewee.

I like to write one more solution based on the discuss shared by the Facebook engineer. Here is the link. But first I like to share my first practice on Leetcode discuss.

First practice


Here is my sharing on Leetcode discuss panel.


Leetcode 1: Two sum - Love keeps no record of wrongs

August 29, 2018

Introduction


It is so surprising that I had chance to review the code I wrote more than three years ago. Here is the link.

I like to write a blog about the algorithm, and I like to highlight what I have learned based on the code I wrote in 2015.

Review line by line 


Here is the C# code I wrote in 2015.

At that time, I did not experience code review on stackexchange.com, I can get free advice on my algorithms. Also I did not have enough wisdom to pick up good crafting skills.

I did not master C# programming language very well after working full time five years, day in and day out using C# to do software programmer job.

I was shy and I did not write any coding blog as a daily habit, and I did not express myself so often.

I did not talk to over 300 software programmer and help each other to prepare for the interviews. Even though I meet people at meetup for software industry, but no one talked to me about coding and crafting.

In summary, back to 2015, it is like ancient history for me. I just know that I was happy and younger.


I like to talk about code smells, crafting skills, Array.Sort and all other things one by one later.

Leetcode 1: Two sum

August 29, 2018

Introduction


It is the easy level algorithm tagged array. I wrote one solution and shared on Leetcode discuss.

My practice


Here is my sharing on Leetcode discuss.


Leetcode 643: Maximum average subarray I

August 29, 2018

Introduction


It is an easy level algorithm. I like to write the solution and also share the solution on Leetcode discuss.

My practice


Here is the link I share on Leetcode discuss.


Leetcode 849: Maximum distance to closest person

August 29, 2018

Introduction


It is an easy level algorithm. It is my favorite algorithm and I like to share my practice on Leetcode discuss.

My practice


Here is my sharing on Leetcode discuss.


Three things I push the limit as a sister

August 28, 2018

Introduction


It is challenge task to push my sister to gain confidence to visit in the city of Vancouver. I have to work with her, and also try to push her to learn and adapt for Canada culture.

It is not easy for her to speak and listen using English, but it is not too bad for me to see her improvement for five day visit in the city of Vancouver.

Push the limit


The first thing I told her is that I could not spend more than three hours of my time with her a day. She has to be independent. I try to push her to go out visit Canada place in the first day, take the skytrain by herself.

The second thing I pushed her is to take her on grouse mountain grind. I like her to learn that hiking is most rewarding experience and get to know the city of Vancouver by knowing one most nearby mountain.




Tuesday, August 28, 2018

Subtle change on my coding blog

August 28, 2018


Introduction


It is the small change but I am glad to see that I like to take the challenge starting from August 28, 2018. Usually I will document my C# code on my blog, but now I just use Leetcode discuss link of my sharing. I like to encourage myself to write a short sharing using my own words, and also share my C# practice on Leetcode.com discuss panel, every time I finish C# code to write an algorithm on Leetcode.com.

It is better to share on Leetcode discuss since it can reach more people in the community. And also it is better for me to explain my thought process and help myself to produce more content to help the community.

The change


I used to create a gist with my C# practice, now I just write a short introduction for my practice and share the code on Leetcode discuss, and then share the link on my blog for the algorithm. It is more efficient to do this way, more active in Leetcode community.


Leetcode 849. Maximize Distance to Closest Person

Become technology savvy

August 28, 2018

Introduction


It is 11:20 PM right now. I try to write a small topic for 20 to 30 minutes research. I had time to review what I have completed last eight year in the city of Vancouver. I like to learn how to become technology savvy.

Maybe one of ideas is to purchase some technology company's stock, invest in a firm like 20 years ago Amazon.

I like to become technology savvy. I like to read more about technology and companies.





One day vacation

August 28, 2018

Introduction


I took one day vacation in the city of Vancouver. I had to drive around to show my sister the city of Vancouver before she left for California. I drove to Queen Elizabeth park first and then we visited UBC next.

I just could not believe that it was such great weather, I enjoyed beauty of Vancouver.


Leetcode 26: Remove duplicates from sorted array

August 28, 2018

Introduction


It is an easy level array algorithm. It took me over five minutes to come out the idea how to solve the problem, I thought about counting how many distinct numbers first, and then put all distinct numbers in the front or in the end. I think that it is ok to move the end and then move back to the front.

My practice


I checked the discuss and found the easy solution.  I wrote one as well. Here is the solution.

Leetcode 53 - Maximum subarray - divide and conquer

August 28, 2018

Introduction


It may be valuable to document failed practice. I tried to fix the issue in my first practice using divide and conquer for the algorithm Maximum subarray, and then I tried to simplify code, spent another 20 minutes, and then I concluded that the design has flaw, there is no way to lead to a solution.

My practice


Here is the code I spent another 20 minutes but failed to lead a solution.


银河系跳槽指南 - 我的感想

August 28, 2018

Introduction


It is the article related to the software programmer as a career written in Chinese. I like the article and learn a few things through the article.

I like to have some research on this topic, career change.

My notes


精心算计好了自己的风险系数


认清市场和大的方向

每年互联网女皇 Mary Meeker 的 internet trends report 是个很重要的工具,要读,仔细读,然后混入自己的思考和判断。

Arguments:

1. 选创业公司是三分看势,三分看人,三分看命。
2. 选这个范畴下的公司 (基金 —— 增长型公司),如果已经有标的,angelList,crunchbase 都是你的好助手。

如果没有标的,那么最简单的方法,女皇的 report 里面提过的公司,一般差不到哪去,挑一个或者几个出来慢慢甄选。

不要动不动跳槽就冲着 airbnb,uber,netflix 这些大路货的名字,在增长型公司里,有的是潜力比他们高,空缺也许比他们更好的公司。

我建议你都好好研究一下 Amazon。它其实不该算在债券型的成熟期公司里,更应该放在增长型公司 —— 但加入 amazon 对小的个体而言(除了财务回报外)没有太大的成长。Amazon 之所以需要重点研究,是因为它的效率,它对 R&D 近乎疯狂的投入(45% YoY),以及它高市盈率和低得令人发指的融资成本



References added by Julia



1. Here is the internet trends report 2018 by Mary Meeker. 
2. Mary Meeker wiki page, here is the link. 
3. Amazon Q1 2018 Grocery sales up to YoY 48%. Here is the article link. 



My thoughts


I will write something here.


Leetcode 53: Maximum subarray

August 27, 2018

Introduction


It is my favorite algorithm called Leetcode 53: Maximum subarray.


My practice


Here is my C# practice using dynamic programming approach.

I shared the solution on Leetcode discuss. Here is the link.

Monday, August 27, 2018

Baby step to apply Amazon leadership principles

August 27, 2018

Introduction


It is important to train myself get active in expressing myself at work. I start to find cases I need to work on communication at work last two months.

I learn Amazon leadership so that I start to apply those principles at work, in my life.


Always stay positive

August 27, 2018

Introduction


It is not a big surprise that I make basic errors when I am nervous. But I also stumbled on an easy level array algorithm again in my practice. I was so happy to learn through the practice again.

The algorithm is called Leetcode 53: Maximum subarray, using divide and conquer technique.


Seven cases not to think about algorithms

August 27, 2018

Introduction


I come cross this idea to write a blog not to think about algorithms. For me it is very important to discipline myself, do not think about algorithm when I drive to and from work. Last year I had a car accident.

I like to write down a blog saying that do not think about algorithm in seven cases.

Seven cases not to think about algorithm 


I worked on the algorithm and then I could not solve the problem, and then I had to drive the car. The algorithm is called Leetcode 53: Maximum subarray.  I wrote a blog about the practice.

I know that it is important to discipline myself. I should not think about the algorithm when I drive.

For driving safety reason, I should not think about the algorithm.
To train myself think clearly, I should limit my time to think about one algorithm.

I need to find more cases that I should not think about the algorithm.




Leetcode 53 - Maximum subarray - divide and conquer

August 27, 2018

Introduction


It is my big surprise that I reproduced the problem I have. I could not think clearly when I write the code and work on the algorithm Leetcode 53, Maximum subarray. Same problem I had two months ago. I have issues to work with time complexity and I need to figure out how to train myself.

I have practiced over 40 algorithms. I was able to work on an easy level algorithm, and then reproduce the problem I have in analysis of the algorithm.

My task is to continue to practice, let me fail a few more times. I should start to fix the issue.

My failed practice


Here is my C# code I wrote using divide and conquer, but I had problems to continue since there are a few issues.

I spent over 30 minutes on this practice. The subproblems defined in my practice solution have not been calculated properly. The subproblem is not well-defined, and it does not help to problem solution.



Saturday, August 25, 2018

Thinking about work

August 25, 2018

Introduction


I had a day trip to Vancouver island today, but on ferry trip, I thought about the work in the city of Vancouver. I really enjoyed the outdoor and beauty of the city Victoria.

How to relax and fully enjoy the break?

I had a few breaks this year, 2 days vacation to Seattle in March, 5 days vacation to Shanghai in April, 3 day vacation to Seattle in June. Now it is August, I like to take one day vacation. And I am planning a trip to use two more days and a weekend to Florida.

Vacation is best medicine to release stress



Life is so touching

August 25, 2018

Introduction


It is one hour 30 minutes ferry for us to go back to Vancouver from Victoria. My sister and I had chance to talk to two ladies in 70, both were college classmate over 50 years ago.  Both of them lives in Florida. I could not believe that, I had good time to talk to them since one lives in Fort Lauderdale area. I told them I used to live in south Florida over 14 years.

Florida vacation


I like to plan a weekend trip plus two day vacation to Florida.





Being a good sister

August 25, 2018

Introduction


It is so interesting to go out with my sister today. She is the first time to visit me in Canada after I came to Canada in 2010.

She spent two months to stay in the city of Milpitas in California and it is the first time I heard that she kept talking about her son, my nephew in the whole day, over 20 times. We had a day trip to Victoria together.

Keep learning


My sister is retired high school teaching living in the city of Shenzhen. I just could not believe that I learned so many things from her. She spent so much time on her cellular phone, and all apps she used surprised me all the time. 

I started to use one app called tantu map. I also saw my sister to use this app called picture this - plant identification.







How often should a software programmer take a break?

August 25, 2018

Introduction


I like to write some topic about how often a software programmer should take a break.

Yesterday I went to Canada place and watched flyover Canada show, $33.00 Canada dollars for 25 minutes. Today I drove to BC ferry, and then parked the car for a whole day $19.00, and then took the ferry, and then took the bus to Victoria with my sister. I like to save cost and choose to use BC transit. I just could not believe that life was so beautiful. 

A software programmer needs break


My trip today costed me less than $100 Canadian dollars, but I could not believe that I had such great time.




Friday, August 24, 2018

Favorite Amazon leadership for August 2018

August 24, 2018

Introduction


It is 11:14 PM and I like to choose a research topic for me to work on. I like to dedicate the whole month for one of Amazon leadership principles, so I can learn one by one. It will take me time to fully grasp the leadership principles.

Which one? 


Customer obsession.

I also like to apply the customer obsession on my own work.




Case study - writing well

August 24, 2018

Introduction


I like to read blogs written by Facebook design VP Julie Zhuo. There are a lot of blogs to read, so I like to choose a few cases to study. Writing well is my interesting topic. Here is the link.

My favorite advice


Hone your craft through writing goals based on quantity not quality.  - Julia rate of 10 of 10

There is no shortcut to better writing, just as there is no shortcut to better design, or any other craft. You must simply do, and then it gets easier. The thing that has helped me the most is setting writing goals based on volume.




Case study - The imposter syndrome

August 24, 2018

Introduction


I like to do some study on this imposter syndrome. But I like to apply this syndrome for me even though I never have chance to work for Facebook. I like to talk about in general how to overcome the fear to share or journal practice on algorithm and data structure, and also document the growth, the struggle, the confusion on the pursuit.

The article link is here written by Facebook design vice president.


Career study - How I got to Facebook's design team

August 24, 2018

Introduction


It is so well-written article to get to know a Facebook designer. Here is the article link.


Actionable Item


Write down three things he did good to make things happen.

Wednesday, August 22, 2018

70 algorithms or 700 algorithm on Leetcode debate

August 22, 2018

Introduction


It is very interesting argument by Xiaohan Zeng in his article called five days five offers. Here is the article link.

Here is the argument:

My thought is that if 70 problems isn't helpful then you may not be doing it right and 700 won't be helpful either. 

Here is the link of 40 minutes interview video.


Take some notes


Work on optimal time complexity backward

August 22, 2018


Introduction


It is hard for me to learn that I have difficult time to perform at my best. No matter how confident I am, and how easy it is to be a programmer in my real life. To ace the interview, it is not easy task. 

I like to find ways to perform best next time. But I also need to relax and find some strategy to have critical thinking. 

Algorithm design 


work on optimal time complexity backward


I like to use the example to explain that it is related to think process. To work on the algorithm, one of ideas is to work on optimal time complexity backward. Can we work on the solution based on O(1), if not how about logN, or N, and then NlogN, and N^2 solution.

If I give a solution based on O(N^2), then I waste time to come out the solution.

The best strategy is to target the scalability, optimal time complexity.

One of examples is to design iterator for list of iterators. To think about O(1) time complexity, ignore the pre-processing time, we can design an iterator using O(1) time, merge all iterators to one iterator.


Data structure 


Once I set the target for optimal time complexity, it is easy for me to search the data structure to make it happen.

Five secrets to tennis confidence

August 22, 2018

Introduction


It is my research topic tonight, read the article called five secrets to tennis confidence. My research is to understand five secrets first, and then how to relate to my self. Here is the article.

My question is how to borrow the idea to apply my algorithm training and interviews.


Julia, please remember this statement


If you allow your confidence to crash because of immediate results or errors during the match, you simply can't perform your best in the match.

"The bottom line is that tennis is a very mental game. Everybody is strong, everybody is pushing hard. But the difference between the top players is the mental ability to copy with the pressure and hit the right shots at the right time and stay calm in the moments when you need to stay calm. ~Novak Djokovic






First 150 leetcode algorithms and then geeksforgeeks.com research

August 22, 2018

Introduction


It is very interesting topic how to train yourself using first 150 leetcode algorithm. I am trying different ideas right now for my training. I do enjoy easy level array algorithms and I have good time to work on those algorithm.

Here is the article related to top-talented young graduate Siyi Fan and his sharing for algorithm and data structure preparation.

Geeksforgeeks.com


Geeksforgeeks.com is the by far the website that I benefited the most for preparing for explaining my thought process. It is a tech blog briefing about each class algorithm and classic example problems. Tech blog fits the tempo of an interview perfectly: both of them are trying to convey a crystal clear idea in a time-efficient and concise manner. For every single programming problem within the 150, I made sure to reflect on what algorithm is behind the problem. Then I will thoroughly read the Geeksforgeeks.com article about the algorithm, as well as the example problems and their solutions.

Hard work



I know that hard work is most important thing for me to do.

Painless functional specifications - Part I: Why bother?

August 22, 2018

Introduction


It is my favorite article even though I just read the article once using 10 minutes. Here is the article.


How to write a good software design doc

August 22, 2018

Introduction


It is my favorite article called "How to write a good software design doc" written by Angela Zhang, the article link is here.

Github master

August 22, 2018

Introduction


It is time for me to read articles through my gmail inbox, subject is medium daily digest.

I was surprised to learn something today since I decided to go over some articles. One of the articles called "Follow these simple rules and you 'll become a Git and Github master" was my favorite. I was too busy to learn Github until today I came cross the article. Here is the link.

Good teaching really inspires me to learn something new.

Pro Git


I spent over two hours to read the book titled Pro Git.

Amazon leadership principle study

August 22, 2018

Introduction


It is so easy to learn Amazon leadership through the interview of Jeff Bezo. Here is the link.

I also learned from my own experience, since I had chance to be an interviewer on interviewing.io, I had chance to interview senior developers and also understand better about Amazon and Microsoft.

I try to choose a topic for me to study, now it is 12:13 AM. I choose this one, here is the link.




Code review - Use Infix expression to construct a binary expression tree

August 21, 2018

Introduction


It is my favorite algorithm and I also like to learn more about data structure stack. In order to improve my competitive ability in terms of problem solving, I have to push myself and seek ways to work on those basics. Stack is so important data structure, and optimal time complexity is so important for people to evaluate candidates.

I like to spend extra 20 minutes to write a post and then I may learn something from the community of stackexchange.com later.

Keep asking


One of my ideas is to write as many easy level array algorithms as possible next two weeks or next month. I also like to push myself to write by asking questions on stackexchange.com. So I can be more sharp in terms of writing technical in algorithm and data structure.

Here is the code review link.

Here is the link to document my practice on this algorithm on github.com.


Tuesday, August 21, 2018

Leetcode 119: Pascal's triangle II

August 21, 2018

Introduction


It is an easy level algorithm called pascal's triangle II. I had good time to work on the algorithm, I spent over 30 minutes to write a solution; And then I found out that optimal solution with minimum space only takes less than 10 lines of code.

My C# practice


My naive solution written and first submission is here.

The optimal solution using one array instead of two arrays - previous and current makes code so simple, easy to write.

Here is my C# code using the backward iteration.


My thoughts 


It is so surprising that there is so easy and quick solution for the algorithm called Pascal's triangle II. I just could not believe that  I did not find multiple solutions first, instead I chose to write one with the naive solution. 

I like to get smart next time. I like to practice easy level array algorithm and this algorithm really makes the practice so much fun. 

Here is the link on Leetcode discuss about the naive solution I wrote. 

Here is the link on Leetcode discuss about the optimal solution I wrote by copying the idea from most popular post.




Leetcode 628: Maximum product of three numbers

August 21, 2018

Introduction


It is an easy level algorithm called maximum product of three numbers. I like the algorithm and learn some good tip from one of discuss written by a Facebook frontend engineer.

My C# practice


Here is my C# code.


Leetcode 830: Positions of large groups

August 21, 2018

Introduction


It is an easy level algorithm called positions of large groups. But  I found it is very challenging one.

My C# practice


Here is my C# practice, I wrote one algorithm to fit into the requirement of lexicographic order. But it is not required by Leetcode online judge.

Here is my second submission without lexicographic order, using order showing up in original string.

Here is the link on Leetcode discuss. I like to learn something by sharing on discuss panel.


Monday, August 20, 2018

Thoughts after running out of time

August 19, 2018

Introduction


I am running out of time to solve 13 easy level algorithms. I like to write code to submit those algorithms. Now it is 11:59 PM. I documented the process using a blog called count down 20 easy array algorithms. Here is the blog.

I like to write a blog called thoughts after running out of time. I know that it is important for me to plan and prepare early. Do not rush to complete the task in last minute.


Actionable Items


Read some sports articles. Here is one.

Sunday, August 19, 2018

190 easy level algorithm target

August 19, 2018

Introduction


It is so easy to write an easy level algorithm sometimes. But it will take me a lot of time and effort in order to complete 190 easy level algorithms on Leetcode.com. Sometimes it gets tough for me to solve an easy level algorithm, I will have to learn something new.

It is important for me to set a target for my training of algorithm and data structure. I have to train myself to cut time short in terms of thinking process, and learning process, I have to be able to learn to solve easy level algorithm in less than 10 minutes.


My training plan 



I like to push myself hard to comprehend problems quickly. In order to do that, I may like to work on those algorithms several rounds. First I like to go over 7 to 10 algorithms in one round, and focus on thinking process and come out the ideas. And then I also like to learn multiple solutions for each algorithm.

Next step is to write code for each algorithm at least once. I like to learn and improve my coding skills.

Third step is to review some of algorithms I have worked on. Try to think about the problem and come out the idea again.

Most of important is to train myself using as many easy level algorithms as possible. Through the process, I like to learn what are my role models by going through discuss and blogs.


Practice, share and learn 


It is most important for me to stay open, and get involved into community. Best thing is to get to know how best talent trains, shares and get involved in the community.


Follow up 


August 30, 2018

vote machine or weigh machine

August 19, 2018

Introduction


It is 9:08 PM Sunday evening. I like to choose some research topic about stock market. Today I watched video about Amazon CEO Jeff's talk, stock market is vote machine or weigh machine. Do you feel 35% smarter if stock market goes up 35%, or dumber if stock market goes down 35%?

I think that Jeff's leadership teaching is so easy to follow. I like to learn something again about stock market.

I think that I should learn to get myself involved in stock market, this way I can grow together with stock market. Right now, stock market goes up 100% last 10 years, SP index, but I have no connection at all.


Leetcode 661: Image smoother

August 19, 2018

Introduction


It is an easy level array algorithm. I learned better from one blog written in Chinese. Here is the gist I created. I will write the code later.


My C# practice 


Here is my C# practice.


Why do I need to stimulate my brain to work on at least 20 algorithm a week?

August 19, 2018

Introduction


It is a good research topic. In order to reach or maintain the smartest brain in the world, I have to figure out what is the minimum algorithms I need to read, think and write in one week. 20 algorithms to read and think? A programmer has to maintain his/ her performance in order to survive performance review or get more confident on being a professional. Suppose that I are a Facebook engineer, I will work on new problems every day. How do I prepare for myself to be the best performer? Should I at least finish all easy level algorithms on Leetcode.com first?

I have a friend who finishes all easy level algorithms, medium level algorithms. And then she gives herself 6 months to go over all hard level algorithms on Leetcode.com.

Be prepared to train with millions programmers together on Leetcode.com. So I am determined to finish all 190 easy level algorithms first. Work hard and write code, and then train myself to build confidence on learning and training first. I will find ways to solve medium level or hard level algorithms later.

Ideas 


I have several ideas. Get involve in community, such as Leetcode algorithm and practice, online judge and discuss. Another thing is to stimulate your brain every day, every few hours to work on new problems, push yourself to think hard and work hard.

Easy level algorithms are very good choices. I read the statistics related to multiple Google and Facebook engineers training over 1000 submission last 12 months, submission over 400 or 500 algorithms.


Why people push so hard on training?


I also like to ask myself why those people train themselves so hard to solve those algorithm and data structure problems. How they manage to do the work?

I had a coach who advised me to work on easy level algorithm in July 2018. He took one year to complete over 500 algorithm on Leetcode.com.

Every time I deal with frustration, I feel nervous or excitement, it may be good time for me to start to train myself on algorithm problem solving. One of the analysis is that I do not practice enough easy level algorithms, or I do not get used to think about the problems very often. Frustration is just the remind me that there is no way to get around the hard work, embrace it.

Once I feel so comfortable to solve problems, I will find the work so easy and then I will have more time and energy to solve more algorithms problems.



Amazon CEO Jeff Bezos: It is always day one

August 19, 2018

Introduction


It is 48 minutes video and I like the talk from Amazon CEO Jeff Bezos. Here is the link.


Take notes quickly



14:00/ 48:00
Invent and simplify - Small company spirit.

17:00
Two pizzas rule/ no power point. Silence hall, 30 minutes to study the well-written notes, ...

20:05
Actually read the memo. Not pretend to read the memo.

21:00
I work like a teacher now.

22:00
firefight scenario -> instead 2 or 3 years ahead.

22:45
Innovative -> misunderstood -> sincere ...

24:15
customer review
negative review -> help to make purchase decision ->

25:15
Look at mirror, critical is correct? Do right thing.

35:00

Artificial intelligence -

41:00
Washington post newspaper business

44:00
role models?
Warren buffet

47:00
grandfather, resourceful. Never call the repairman. Figure thing out by himself.


Count down 20 easy level algorithms one week training

August 19, 2018

Introduction


It is the first time I had chance to study 20 easy level algorithms in one week. I try to read 20 easy level algorithms first, it is easy to get start by reading the algorithms.

There are 190 easy level algorithms. I have not think about how to use those 190 easy level algorithm to train myself.

I like to count down 20 easy level algorithms to go before this 12:00 AM. I just could not believe that I have to push myself hard in order to reach the target. Now it is 5:03 PM. I have to review what I have on the past seven days, and then I need to examine how far away I am with the specific target.

20 easy level algorithms


Now it is 9:33 PM. I need to rush two hours and 30 minutes, and then submit as many as possible solution on Leetcode.

I have worked on more than 20 array easy level algorithms. My job now is to write the code and then submit to online judge.

Here are the algorithms:

Leetcode 217, 167, 697, 661, 830, 268, 628, 119, 66, 35, 747, 53, 118, 27, 674, 746, 121. 

Now it is 11:30 PM. I wrote the algorithms and submitted online judge using Leetcode.com for algorithms Leetcode 217, 167, 697, 661.







Get organized - reach out sibling community

August 19, 2018

Introduction


It is hard for me to contribute the sibling community last two months. I have four sisters and one brother. I have to learn how to relax and find time to get in touch with the community.



Get organized - sponsor application

August 19, 2018

Introduction


It is my sponsor application and then principal application. I did spend time to work on paper work to support principal applicant this July 2018.

I like to write down something to show that a person with good project management experience will also help people succeed as well, I like to show young generation how I am doing things step by step, with faith and determination to complete a project.

It is time for me to write down something and remind myself to calm down, do one thing a time.

Where to find affordable place in Canada?

August 19, 2018

Introduction 


It is time for me to do some research about home price. I like to study a few more topics related to Canada.

Follow up 


Sept. 8, 2018
Here is the article from Huffpost related to Canada housing.

Get organized - Finance

August 19, 2018


Introduction


It is time for me to slow down and work on cleaning up my finance. I have to work on rental business, and find a new renter this September. But I also have a list of small projects to work on. I have bank accounts in three countries. USA, Canada and China. I have to think smart and work on finance as well. 

As a project manager, I only spend time to handle rental business last 8 years. But then I notice that I made a huge mistake because I disconnect myself totally from stock market in 2009. Nothing is in stock market, all I have are CD, bonds, money market fund. Last 10 years all of those products are with less than 2% a year return.

I am shamed as a high tech person without benefits of enjoying technology stock booming last 10 years.

Seek, and you shall find


If $1000.00 dollar was invested to Amazon stock in 2008, now it is the value of $12,000. I spent over 20 minutes to read this article. Here is the article.

A good programmer should also carefully consider everything, and stock market is most important part of capitalized economy. I disconnect myself from stock market last 10 years completely.






Get organized - clean my own room

August 19, 2018

Introduction


It is time for me to get organized. I spent whole day Saturday to clean my room. I need to pack all cloths into the suitcase, and give room for me to enjoy my home office. Every time I have problems to deal with space issue, I know that I have to discipline myself. Do not shop any clothing.

After I got the clean room around 4:00 PM, a few hours hard work. I went out to play tennis for a break. And then I studied my finance in more than two hours.

Everything is in messy. I need to get organized.

When my room is messy, I know that I am under stress.

When my room is clean


I learn that I am in the control and very relax if I see my room is very clean and full organized. Sometimes I am in rush but I do not know that it slows me down.


Thursday, August 16, 2018

7 easy level algorithm one hour brainstorming

August 16, 2018

Introduction


I like to train myself to understand the algorithm and be able to come out my own ideas. I like to design a drill for one hour, specially for the morning time. I like to use those 60 minutes to read 7 easy level array algorithm, and come out the idea to solve one by one.

I like to train myself to think independently, and also feel comfortable to think. The only way to reach the goal is to do it every day. I have 190 easy level algorithm to solve and submit them on leetcode.com starting August 10 2018. It will take me at least 25 hours to think about those algorithms by myself first.


7 array easy level algorithms

August 16, 2018

Introduction


I like to learn 7 easy level algorithms tagged array today. I like to spend one hour to think about 7 easy level array algorithm, the training is to focus on understanding the algorithm, what problem to solve, and I need to come out my own idea first.

7 algorithms


Here are Leetcode algorithms for me to think about. Leetcode 217, 167, 697, 661, 830, 268 and 628.


Follow up 


August 19, 2018

From 9:30 AM to 11:17 AM, I studied algorithm 217, 167, 697, 661.

Leetcode 697

Here is my favorite sharing.

And then I like to document one sharing here when I studied leetcode 661, 11:20AM.

Hard working programmer - prepare all Leetcode algorithms -
Here is the profile. 1255 submissions, and then 485 solved problems.

One sharing is here:




I love to code Array easy level algorithms

August 16, 2018

Introduction


It is so interesting journey to practice easy level algorithms tagged Array on Leetcode.com. I just could not believe that I enjoy browsing all kinds of ideas to solve those algorithms and I like to see various ideas and code in various languages.

How come it is so easy for me to love to code for those algorithms. Sometimes I found out that easy level algorithm can be such a great tool for me to train myself to get good understanding of data structure.

One of my most favorite algorithms is Leetcode 414 called Third maximum number. I shared my C# solution using SortedSet, here is the link.

Actionable Items


Find some arguments to support the coding training using Leetcode easy level algorithm tagged using Tree, Array, String, Math. I believe that if I work on those 190 easy level algorithms first, I will build a good habit to code every hour, and every 15 minutes break, and also get used to think hard on algorithm and data structure.

I came cross one master graduate student who finished over 600 algorithm in less than 12 months. I believe that it is best training for a young programmer to prepare for good software career.

Here is one of profiles I studied today. It takes a lot of determination, wisdom and sacrifice to finish over 3000 submission in last 12 months. Solved question is 624/881.

I just could not believe that the hard working spirit and also very good management of time. In order to submit so many algorithms, I have to be a very efficient on time management. Do not spend extra time to read various ideas. Focus on solving new algorithm, do it as quick as possible.


Design a drill for array easy level algorithms



There are total 50 easy level array algorithms. I like to design a drill to work on those 50 easy level algorithms.

Spend one hour think about 10 easy level algorithms. Try to read the problem and come out the idea by myself alone. Do not read the discuss, write down the idea using one sentence.

This drill is to help myself comprehend the problem quickly. And also it is also very good to train myself think intensely in 5 to 10 minutes to come out an idea.

Leetcode 849

Leetcode 643

Leetcode 724


More problem to read, 119, 66, 35, 747, 53, 118, 27, 674, 746, 121


Tuesday, August 14, 2018

50 easy level algorithm tagged Math

August 14, 2018

Introduction


In order to build a good habit to write code every day, I plan to work on 50 easy level algorithm tagged Math very soon. I like to finish 50 array easy level algorithms first.


Leetcode 724

August 28, 2018

I will practice the algorithm very soon.

Leetcode 1

August 28, 2018

I will practice the algorithm very soon.

Leetcode 643

August 28, 2018

I will practice the algorithm very soon.

Leetcode 849

August 28, 2018

I will practice the algorithm very soon.

Leetcode 26

August 28, 2018

I will practice the algorithm very soon.

Leetcode 624. Maximum distance in arrays

August 14, 2018

Introduction



It is an easy level array algorithm. I like to study one blog named grandyang, here is the link.


Leetcode 840.

Leetcode 219. Contains Duplicate II

Introduction


It is an easy level array algorithm. I came out the time complexity O(N) solution where N is the total number of element in the array. I decided to write the algorithm. And then I studied discuss and the solution can be simplified.

I simplified the code from using Dictionary<int, HashSet<int>> to Dictionary<int, int>, and then continue to simplify using HashSet<int>.

My practice


Here is my C# code folder.


Leetcode 414. The third maximum number

August 14, 2018


Introduction



It is an easy level array algorithm. I spent time to read a few discussion and then I started to write code using SortedDictionary, SortedSet to implement a minimum heap, and also write code just using three variable for top three maximum numbers.


My C# practice 


Here is the folder containing all three practice.

Here is my sharing on Leetcode discuss called C# solution using SortedSet.


Leetcode 189. Rotate the array

August 15, 2018

Introduction


It is an easy level array algorithm. I did spend over 20 minutes to think about the idea by myself, how to find a solution using in place algorithm more than a few weeks ago. I could not come out the idea by myself until I read one of discuss.

The idea is to apply three reverse the array in place.

My practice


Here is my C# code.


What is Jeff Bezos like as a manager? – Tech in Asia

August 14, 2018

Introduction


I like to spend time to study more about Amazon as a company, and also leader in the industry. Here is the article I read and I will write down some notes first.


Leetcode 665. Non-decreasing array

August 14, 2018

Introduction


It is an easy level array algorithm. But success rate is less than 20%. I choose to work on the tough one first.

My practice 


Here is my C# code.

I made a mistake and then leetcode online judge failed me on the test case: [-1, 4, 2, 3]. I learned that there are two user cases. One is to replace index = i and second user case is to replace index = i + 1.

I like to share the submission result to remind myself gently, next time I should think carefully before I submit the code. Do not rely on the online judge. Think independently.


If I think carefully, I can save 11 minutes. In my practice, I spent over 10 minutes to correct those two failed test cases, one is [-1, 4, 2, 3].


Time to celebrate 32 easy level tree algorithms

August 14, 2018

Introduction


It is time for me to celebrate 32 easy level tree algorithm today. I just finished all 32 easy level algorithms.


Work on easy level algorithm


I like to follow Amazon leadership "Hire the best. Develop the best" principle. What I did is to hire the best performer to be my coach. And then I decided to listen his advice starting from July 10, 2018. Ex-coach advised me to work on easy level algorithms first on Leetcode.com.




Easy level algorithms with array tag

August 14, 2018

Introduction


It is time for me to build a good habit to write code any time, every time I like to take 15 minutes break. The idea is to work on easy level algorithm, so that I can easily work on problem solving, and also start to learn ideas how to solve problems.

Array algorithm


There are over 50 easy level algorithms for me to solve. Here is the link.

The idea of training is to relax and solve easy level algorithms first. Once I master the easy level algorithm, I have more ideas to solve other algorithms. I am so excited to solve 1 - 2 easy level algorithms before I go to bed every day.

I also like to make the training of algorithm much easy to handle. Every day I enjoy to do some task trivial, know more hard working people on Leetcode discuss, and then get used to solve problem. The more relax I am, the more often I will write code for an algorithm.

I like to build a good habit to code every day.

Take it easy.

Follow up 


Oct 24, 2019

I just wrote three easy level algorithm in less than one hour. I felt so good, since I can push my solved algorithm to 440 very quickly. Now I solved 439 algorithms.

Why is it so hard for me to be humble? I just treat myself as a child. I like to learn to do some coding. I just write 10 easy level Array tag algorithms first.

It is like tennis sports. I should warm up 10 - 15 minutes every time I go out to play. The warm up drills can be completed by hitting against the wall, or hitting against a hitting partner.

Life is easy if I choose to work on easy level algorithms first.

It is so hard for me to admit it. I should be proud of myself, this year I have Amazon and Facebook onsite. After August 20, 2019 Facebook onsite, it is hard for me to go back to my daily routine to study system design, or algorithm practice. I chose to work on interviews on interviewing.io as an interviewer, I met so many engineers, and I learned from their performance, some of them shared their onsite interview experience with me as well. Just relax, and start from ground zero, work on basics again.

Now it is Oct. 24, 2019. It takes me two months to recover, and find joys to work on algorithm coding again. Easy level algorithm, array tag algorithm makes me such a great problem solver.

Leetcode 590. N-ary tree postorder traversal

August 14, 2018

Introduction


It is an easy level tree algorithm called N-ary tree postorder traversal.


My practice



Here is my C# code.


Leetcode 589. N-ary tree preorder traversal

August 14, 2018

Introduction


It is an easy level tree algorithm called N-ary tree preorder traversal.


My practice


Here is my C# code.


Leetcode 429. N-ary tree level order traversal

August 14, 2018

Introduction


It is an easy level tree algorithm called N-ary tree level order traversal.


My practice


Here is my C# code.


Leetcode 559. Maximum depth of N-ary tree

August 14, 2018

Introduction


It is an easy level tree algorithm.

My practice



Here is my C# code.

Leetcode 700: Search in a binary search tree

August 14, 2018

Introduction


It is an easy level tree algorithm called search in a binary search tree.


My practice


Here is my C# code.


Leetcode 653: Two sum IV - input is a BST

August 14, 2018

Introduction


It is an easy level tree algorithm called Two sum IV - input is a BST.


My practice



Here is my C# practice.


Leetcode 257: Binary tree paths

August 14, 2018

Introduction


It is an easy level tree algorithm.

My practice


Here is my C# code.

Here is my sharing on Leetcode discuss.

Leetcode 107: Binary tree level order traversal II

August 14, 2018

Introduction


It is an easy level tree algorithm called binary tree level order traversal II.

My practice


Here is my C# code.

Leetcode 404: Sum of left leaves

August 14, 2018

Introduction


It is an easy level tree algorithm.

My practice


Here is my C# code.


celebration of 150 mark - I solved 150 Leetcode algorithms

August 14, 2018

Introduction


It is time for me to celebrate 150 solved algorithm on Leetcode.com. I like to celebrate the mark of 150 solved algorithm. Last two months I solved 50 algorithms.

Motivations 


I like to write down motivations I had in order to complete extra 50 level algorithms in less than two months.


10 good things about Canadian manufacture business

August 14, 2018

Introduction


It is time for me to write down something called 10 good things about Canadian manufacture business. I have worked in a manufacture business over 8 years. I like to write down a few things I learn through daily work.


Live a life like leaders

August 14, 2018

Introduction


It is time for me to think about the feedback I had two months ago. I like to live a life like a leader, and write down a few things I like to work on.

First time one hour three Leetcode easy level agorithms

August 14, 2018

Introduction


It is time for me to celebrate first time I submitted 3 easy level tree algorithm in less than 60 minutes. Here is the picture showing my submission.




Amazon leadership study

August 14, 2018

Introduction


It is time for me to learn Amazon leadership. Here is the article.



Monday, August 13, 2018

Amazon leadership principle study

August 13, 2018

Introduction


It is time for me to read the article and learn about Amazon leadership principle. Here is the article.

The Fitness Benefits of Playing Tennis

August 13, 2018


Introduction


It is time for me to read every day for my summer weight control project. I had such good time to play tennis today. Here is an article talking about tennis and weight loss.

Are tech stocks about to come back to earth?

August 13, 2018

Introduction


It is time for me to learn something about technology stock. Here is the article.

Find ways to master data structures

August 13, 2018

Introduction


It is time for me to find ways to improve my algorithm analysis ability. I like to find ways.

I made two mistakes last 3 months. First challenge is to use stack to construct the binary expression tree based on infix expression. Second one is to use minimum heap to find minimum value in a list of iterators.

I only solved 7 out of 39 stack algorithm on Leetcode.com. Here are the algorithm tagged by stack. And I only solved 4 out 31 heap algorithms.




190 easy level algorithms

August 13, 2018

Introduction


There are 891 algorithms on leetcode.com today August 13, 2018 10:42 PM. And 250 out of those 891 algorithms are easy level.  I like to work on those 190 easy level one since I already solved 60 easy level algorithms

I like to build some good habits when I work on those 190 easy level algorithms. One habit is to write code every day. Also try to relate to an easy level algorithm if I need to solve an algorithm problem.

Amazon leadership principle, invent and simplify. I like to apply the principle to help me argue the strategy to insist on easy level algorithm training first.


Strategy


My strategy is to train myself based on easy level algorithm. Use 190 easy level algorithms on Leetcode.com, I like to invent a drill to help me every day, comprehend 7 algorithms first in one hour daily and come out my own ideas. I will follow through the code and submission using Leetcode online judge. The goal is to improve problem comprehensibility in general, and I like to push myself into training every day.

It is important to code every day using Leetcode easy level algorithms. Also it is important to think about problems, read a lot of ideas and is able to communicate and share with others on Leetcode discuss as well.

I like to see myself relax, and structure very well in my training and lead to so progress over the time. 190 easy level algorithm should be reviewed first using one hour session, and then I need to code those algorithms as well if I have time. I like to build good thinking process.


15 minutes a break

August 13, 2018

Introduction


I start to enjoy to write tree algorithm easy level on Leetcode.com recently. I have finished over 23 easy level tree algorithms. I still have over 20 medium level tree algorithms to work on, 7 hard level tree algorithms to work on. But I like to work on other category easy level algorithm first.

Take a 15 minutes break. Use the time to write an easy level Leetcode algorithm.

What I like to say is the campaign - take a 15 minutes break to write a single easy level algorithm on Leetcode.com.






Is it possible to complete 100 easy level Leetcode algorithms in 2 months?

August 13, 2018

Introduction


It is so enjoyable to work on the algorithms every day. I like to figure out if I can complete 100 easy level algorithm in two months.

Three reasons to say yes


I have finished almost 150 algorithms on Leetcode.com. I should be able to complete 100 easy level algorithms in two months. There are so many good posts on Leetcode discuss, I think that learning from those sharing is more efficient compared to other places.

I will have good time to learn and also know more hard working people through Leetcode discuss. I believe that a lot of them have good jobs right now. Definitely I will be inspired and work hard to solve those easy level algorithms.


Reason 1:


Reason 2:


Reason 3:


How many ways to track my practice on Leetcode algorithms?

August 13, 2018

Introduction


I like to document my practice on leetcode algorithm using github. I try to add more folders and keep tracking of progress. Here is my Leetcode github folder.




Sunday, August 12, 2018

Leetcode 107: Binary tree level order traversal II

August 12, 2018

Introduction



It is easy level tree algorithm. But I had a lot of fun to write the code since I failed the first time. I used Stack instead of Queue to do level order tree traversal. There is a problem since stack will not maintain first in first out order. The node visited is wrong.

My static analysis of the algorithm went wrong. It just reminded me that  I need more careful to choose a data structure when I design the algorithm.

My practice


Here is my C# code.


Training as a programmer

August 12, 2018

Introduction


There are so many ways to advance yourself to top programmer in the world. But it is not easy at the beginning, in the middle of process, maybe last 10% should be easy.

It is hard work, and a lot of coding. No recipe can replace hard working, training, coding every day, every week.

My training 


I have tried so many things last four years. I did see some progress but I still need to work on more.

Here are the list of things I worked on last few years.

1. Over 25 Hackerrank contests played; 100 algorithm problems solved or partially solved. Here is my hackerrank profile.
2. 40 algorithm questions asked on code review stackexchange.com. Here is my code review stackexchange.com web link.
3. 140 Leetcode algorithm solved up to August 12, 2018. Here is my Leetcode profile.
4. 350 mock interviews. Here is the link on my github for mock interviews.
5. 60 mock interviews as an interviewer. Here is the link on my github as an interviewer.
6. 2000 blogs about algorithm and related topics.
7. Real experience for code challenges, meetings like phone screen, onsite, mock interviews. One of blogs is here. Another one is here.


Based on my ex-coach advise in July 2018, I need to work on Leetcode easy level algorithm, work on easy level algorithms first, and then move on medium level algorithm, and then move on to hard level algorithm. I like to submit 200 algorithms on Leetcode.com first. I submitted 100 algorithm up to July 1, 2018. Let us see how long it takes me to complete second 100 algorithms, most of them are easy level Leetcode algorithms.

August 12, 2018, Leetcode solved problems:

July 21, 2018, Leetcode solved problems:


July 21 - August 12, 2018, 32 easy algorithms, 5 medium algorithms, 3 hard level algorithms.


Leetcode Tree algorithm


Here is the link to find all Leetcode tree algorithm. 91 algorithms include 27 easy, 55 medium, 9 hard algorithms.

23 solved, total 27
14 solved, total 55
2 solved, total 9.


Leetcode 669: Trim a binary search tree

August 12, 2018

Introduction


It is an easy level tree algorithm. It is also the first time I write the code for the algorithm.

Here is my C# code.

Leetcode 637: Average of levels in binary tree

August 12, 2018

Introduction


It is an easy level algorithm called Average of levels in binary tree. I like to write the code for the algorithm.


My practice



Here is C# algorithm I wrote. The idea is to use queue and then traverse the tree level by level. Each level the sum of all nodes are calculated and then average is also calculated.


Best summer ever

August 12, 2018

Introduction


It is the best time to be a software programmer, specially in 2018.

It is the best time to be a software programmer. I just could not believe that. When I study Amazon, Facebook, Google and Apple yesterday, the total value of four companies in the stock market just tells me that it is best time to choose to be a software programmer.

We live happy life with products and services provided by those four companies. As a software programmer, I also realize how easy for me to advance my skills as a programmer since 2015, as a business woman, and a warm-heart community builder. I can enjoy writing coding blog using Google blogger, and then I also can easily use Facebook apps to get connected to the world, and use so many apps to meet people and chat about algorithm and data structures.

Last 3 months


Starting from this May, 2018, I just could not believe that I experienced so much challenge to work on algorithm and data structure training, practice, and a lot of excitement. I just could not believe that the programmer can be such a competitive job and we can help to change the world.

I just could not believe that every company works so hard and get people excited about advancing basics on computer science, and really help us as a software programmer working for a small business to learn and build solid products at work.

So many thanks to Amazon, Microsoft, Facebook. One by one, I had such great summer from May to August, 2018. It is the first time in my life I experienced so much attention, I do believe that we can change the world and make the business much successful to get connected, and stay in touch.

Money cannot buy the experience



I just could not believe that I learn so quickly about new technology in May, I did learn so many things in those few weeks. I experienced so much joy to be a software programmer. We are in good career and we are making the world much better place to be.



Leetcode 404: Sum of left leaves

August 12, 2018

Introduction


It is an easy level tree algorithm. I like to work on the algorithm and spend 20 - 30 minutes on the algorithm.

My practice


Here is my C# code. I made a mistake in my first writing. The leaf node should be checked with condition that left and right child both are null. Line 38 is added after one test case is failed since the non-leaf node is counted.



Comparing the insane growth of Amazon and Facebook stock

August 12, 2018

Introduction


It is my job to get myself educated besides working on algorithm and data structure practice. I made a series of mistakes, showing ignorant of business world through July 10, 2018 to August 3 2018.

It is time for me to conduct some study, and understand better about the business world. I like to read the article titled "Comparing the insane growth of Amazon and Facebook stock". Here is the link.




Why cold emailing will dramatically change your life

August 12, 2018

Introduction


It is such great sharing from his personal experience to find first summer intern. I like the idea and will write down some notes later. Here is the article link.