Saturday, December 31, 2016

Code Review - Find biggest basin

Dec. 31, 2016

Find biggest basin


Julia's favorite review: 

http://codereview.stackexchange.com/a/49477/123986

Julia, write a C# practice as well.

BFS/ DFS algorithms' Review

Julia, please review BFS/ DFS algorithms practiced this year.

Search blog using keyword: BFS

1. Connected Cell in a Grid - Warm up with Five Practices

Use Queue/ Stack/ Recursive function, get familiar with all five algorithms.

2. Leetcode 317: Shortest distance from all buildings



Code Review - Find intersections of overlapping intervals

Dec. 31, 2016


Introduction:



Code Review study:

Find intersections of overlapping intervals

[interview-questions] views:10000..50000 - 3 hours workout

Dec. 31, 2016

Introduction
Julia has to teach herself to be patient, she has to slow down and then learn one algorithm a time. She tries to figure out if she can use the following as a ritual - code review study on stackexchange.com:

1. Read the algorithm
2. Understand the algorithm - write some notes
3. Try to think about it by herself
4. Read the algorithm
5. Have some code review by herself
6. Read other people's review



Workout

Search keyword:
[interview-questions] views:10000..50000 - 3 hours workout

26 algorithms:

No. 1 1:03pm - 20 minutes

Searching an element in a sorted array


No. 2 

Interview coding test: Fizz Buzz


No. 3   2:10pm - 20 minutes reading - 

Find all the missing number(s)


Highlights of great review:
http://codereview.stackexchange.com/a/48775/123986

I would also like to see some verification of the method preconditions given. 

No. 4


Julia tastes the success and hunger for more.

Friday, December 30, 2016

Leetcode study

Dec. 30, 2016

Plan to read a few algorithm on this blog:

https://anothercasualcoder.blogspot.ca/


Code Review - Counting Inversion

Dec. 30, 2016

Study the algorithm on code review:

Counting Inversions

Previous study:

Count inversions - Extended merge sort - 3 Lecture Notes Study


Goal:

1. Time complexity: O(n*) -> O(nlogn)

2. Review the process of analysis by following lecture notes, the recurrence relationship using divide conquer - T(n) = 2*(T/2) + O(n), and then, using the combinatorics - do some analysis on the time complexity.

Master Theorem - Get back to the basics!





Code Review - Study by user

Dec. 30, 2016

Study the user and find out best algorithms to study.

http://codereview.stackexchange.com/users/9452/josay?tab=tags

This one is my favorite:

 http://codereview.stackexchange.com/a/41140/123986


How to make good search on code review?

Dec. 30, 2016

Study the blog:

https://codereview.stackexchange.com/help/searching


Search:
Keywords:

1. views:100000..200000

Depth First Search & Breadth First Search implementation


2. views:50000..100000



Code Review - Algorithms by JavaDeveloper (Day I of 10)

Dec. 30, 2016

Introduction
Julia learns to become a good coach one day by document her own practice. Tennis coach Rob Steckley coached top ranking WTA players from ranking 50 to 20;  however, Rob was not top player himself. His best ranking was around 400 when he was 27 years old. His big advice as a coach is to learn super patient, with some humor; in other words, make WTA players laugh.

Julia may not be top players on HackerRank contests, she only can perform 10% of top players in the world. But she has the goal - maybe, she can coach players up to top 10% performers in the world. A few things she found she could do, one is to write her own coding blogs to show the journey.

She did work on coding blog, and then, she found out that she started to get bronze medal on HackerRank; and then, she writes down whatever she likes to write, tiny progress she makes, and then, she found out that a smart anonymous programmer very well-prepared, had 189 algorithm with nice code, also reviewed on stackexchange.com.

Let us read some timeline facts. Julia started to write coding blog from June 2016, and found code review on stackexchange.com in Nov. 2016 Jianmin Chen (37 days), compared to JavaDeveloper (code review profile on stackexchange.com: 3 years 4 months). 3 years difference. Julia got reputation 139, 4 answers, 6 questions, ~2k people reached, visited 38 days, 38 consecutive, whereas the JavaDeveloper has 0 answers, 189 questions, ~642k people reached, member for 3 years, 4 months, 988 profile views, Last seen Dec. 19'16 at 15:29. Top 4% overall.

She has one week break from Dec. 24 - January 3, 2016. She found JavaDeveloper on stackchange.com until on Dec. 29. She plans to review 189 algorithms, but she could not finish all of them.

Weakness

Julia spent a lot of time from June 2015 to Nov, 2016 to use Google to find algorithm blogs, over 50% of them are written in Chinese. She did learn a lot of through the study; but she felt that Google search results may not lead to the best solutions out there.

Every time Julia documents the mistakes she made, she starts to learn basics. Spend time to read, write, share, and make correction. Most important is to keep her focus more on the practice.

Workout

Plan to review all the questions asked by one person - Julia searched "binary tree maximum path sum".

Around 100 algorithms.


Least Common Ancestor in Binary Tree


Or go through 189 question by votes

Julia tried so hard last few days to find good code review, she finally settles down on this one. Good job, well done!

Create a binary search tree

Check for balanced parentheses   over 40000 views







Thursday, December 29, 2016

How endurance athletes are using the power of the now

Dec. 29, 2016

How endurance athletes are using the power of the now - Ned Phillips


Secrets of elite athletes - Kenn Dickinson

Dec. 29, 2016

Secrets of elite athletes:

1. Visualize the vision
2. Deliberate practice

Penny Cheneryan American sportswoman who bred and raced Secretariat, the 1973 winner of the Triple Crown

The skill of self confidence - Dr. Ivan Joseph

Dec. 29, 2016

Spend 10 minutes to watch the "The skill of self confidence".

Director of Athletics


Julia learns something to be a good coach, very nice talk. Julia gives it 10, best one she watched today.

Self confidence - belief that you can accomplish no matter odds, adversity.

Easy way to build confidence - repetition, repetition, repetition, 10,000 hours rules.

Hey, I have done this thousand times. Over and over again, how many of us bail after we first fail.

But, practice, practice, practice, but do not accept failure.

Persistence.

Get away from the people who tear you down.

Self-affirmation - when doubt and fear come in the mind, remind himself.

What can we do? Fix mistakes. What I have done to Johnny's confidence?

What I have done to build up the confidence. Educator, catch them when they are good.

Confident people choose the feedback when they like.

No one believe in you unless you do.








Getting stuck in the negatives (and how to get unstuck)

Dec. 29, 2016

Spend 10 minutes for a talk - Getting stuck in the negatives (and how to get unstuck) 

http://psychology.ucdavis.edu/people/aml


Dr. Sean Richardson - Mental Toughness: Think Differently about your World

Dec. 29, 2016

Great talk, 10 minutes talk. That is great.

Fail over and over again, that is why I succeed. Can not take risk not to try.   Michael Jordan


http://drseanr.com/




Sport psychology - inside the mind of champoin atheletes

Dec. 29, 2016

Introduction
Came cross the video after the study of mental training for top professional tennis players.

Now, back to academical area, read something about a professor:
http://www.martinhagger.com/

Study

Take notes:

Sport psychology
  • Elite athelets recognize sport psychology
  • The study and practice of mental preparation
  • Techniques and strategies for performance
  • Dealing with stress and copy with set backs
What factors are linked to success in sport?
  • Motivation
  • Confidence
  • Performance knowledge -'total' sport
  • Routines
  • Anxiety management
Motivation

  • Goals define an athlete
  • Goal setting
          Specific, Meaningful, Agreed, Relevant, Time-specific, Engaged, Recorded

Confidence

  • Experience
  • 'Modelling'
          - Observation
          - Imagery
          - Self-talk
  •  Feedback
Imagery
  - Find quiet place
  - Imagine the race/match
  - Imagine the sensations
  - Use prompts
  - Image "what ifs"

Self-talk

  • Motivational ('come on', 'you can do this')
  • Focusing - important cues
  • Claming (e.g., 'calm';'breathe';'relax')
Anxiety management

    Relaxation techniques

  • Breathing
  • Stretching
  • Muscles
  • Music
  • Meditation







Tennis sports and study about mental part training

Dec. 29. 2016

Introduction
Continue my first study, and then start to read more.

Study

First, study the profile of Cibulkova as a professional player.

Cibulkova learned to stop her mental meltdowns

There are some important lessons to be learned here:

LESSON #1: You can only learn to manage pressure if you practice playing under pressure situations. You can’t just focus on dealing with pressure once in a while. You must commit to learning how to effectively manage pressure on a daily basis.
LESSON #2: Everyone gets nervous. You are not special in this regard and just because you have that little edginess does not meet your whole game will fall apart. Learn a good relaxation strategy that you can rely on so you can remain poised under pressure.
LESSON #3: Focus not on what just happened or what might happen… focus on what you want to happen right nowFocusing on the present requires that you have selective amnesia (so you can forget the last point) and blinders (to prevent you from looking too far ahead).

If you want no more letdowns and no more meltdowns, get to work developing your 3 point plan to manage pressure. Your game will thank you!

Actionable Items:

Read more articles:

1. top-5-emotional-players-in-womens-tennis

2. This gets a little serious - mental illness - short break strategies

3. Rebecca Marino - public sharing her mental depression, early retirement.
Slipping Through the Cracks: Pro Athletes and Mental Health:

4. Sport psychology - inside the mind of champion athletes: Martin Hagger at TEDxPerth

5. Talent players high expectations

6. Shelby Rogers a cinderella story

7. Overthinking between match points

8. http://www.articlesfactory.com/author/Dr.+Patrick+Cohn.html




Wednesday, December 28, 2016

An honest assessment from a top tennis player

Dec. 28, 2016

Introduction

Julia has a holiday break whole week, so she decides to take some time to work on something different - Mental toughness training. Learn something about dealing with worries, how to handle the stress of practice, contest and study.

She plans to do some study on professional players - tennis player, how they handle up-and-downs smartly. And then, she came cross this article to read.

Study 

Victoria Azarenka: An honest assessment of my 2015 season

First, look up her professional records on tournaments:
http://www.espn.com/tennis/player/_/id/421/victoria-azarenka

Take notes from the article, learn how healthy professional player handles down-time smartly.

1. End season early, Wuhan Open - Oct. 3, 2015 ( Oct., Nov., December) 3 months training, no matches.

Fact: 
Surprising loss in second round in Wuhan,
Work on the mental part:
1.  only thing I can do is to stay in the present, in the now, and figure out what's next.
2. There is always a new season, a new tournament, a new chance.

2. My injuries
Facts:
Play with pain in Wuhan open

Work on the injuries:
Deal with pain, play through it, train through it, pretend that it is not there.

Learned through the experience:
Learn that the hard way. Take time off.

3. Australia - start new season
Facts:
my ego came along with the nervousness

Give out an ego talk:
How it is a good thing?
You're the best and nobody can beat you.
Having a healthy ego is absolutely necessary to reach the top.

4. New coach
Facts:
Contact Serana if it is OK to work with the coach Sascha Bajin

Argument:
Being honest is the only way to do business in my opinion.

Give out  a talk about hitting partner:
...

Talk about emotional toll - inconsistencies from hard court swing to ......
father underwent surgery ...

Self-talk:
How fortunate I am to play.

Talk about training place - Croatia - a country

5. Peers
Serena - No. 1
I believe in myself and nobody can put a limit to what I can achieve.

a lot to do , a lot more to learn.

my thoughts, raw, uncut and honest. Nobody can twist and turn it around.

Actionable Item:

Do some research on emotional toll, how top-players handle emotional toll properly.
Google search keyword:
how tennis top player handles emotional toll

More readings:

1. https://www.healthychildren.org/English/health-issues/conditions/obesity/Pages/The-Emotional-Toll-of-Obesity.aspx


2.https://www.psychologytoday.com/blog/the-power-prime/201012/sports-the-power-emotions

In fact, one reason why the best athletes in the world are at the top is because they have the ability to control their emotions rather than their emotions controlling them.


HackerRank - Data Structures: Heaps

Dec. 28, 2016

Min Heap using Array 
Learn something through 10 minutes video. 
Watch the video: 
Data Structures: Solve 'Find the Running Median' Using Heaps

Data structures: Heaps 
Julia, write down the code in the above lecture video, and then use it for my own copy of C# PriorityQueue class. 

Min Heap:  

The lecture is very good, and make the explanation to mine; learn how to design those APIs:

ensureCapacity
add

heapifyDown
heapifyUp 

Watch the lecture notes twice. 

Actionable Items:

Read code review on stackexchange.com

search keyword: min heap using array
http://codereview.stackexchange.com/search?q=min+heap+using+array

Code review: HackerRank - OpenBracket codesprint - Fraudulent Activity Notification

Dec. 28, 2016

Introduction
Julia reviewed her blog:
http://juliachencoding.blogspot.ca/2016/10/fraudulent-activity-notification.html

Code Review
Read editorial notes, 

Two solution, one is counting sort, using time complexity O(n) - n is with 200 constant factor; second one use priority heap - two heaps
This can be solved using two priority queues in O(nlogn). 

Watch the video: 
 Data Structures: Solve 'Find the Running Median' Using Heaps

 Data structures: Heaps 
Julia, write down the code in the above lecture video, and then use it for my own copy of C# PriorityQueue class. 

Find some code to study:


 


HackerRank week code 27 - Hackonacci Matrix Rotations

Dec. 28, 2016

Problem statement

Score 4 - Maximum score: 40

Julia C# practice

Julia had great time to practice matrix rotations, she spent over 2+ hours to work on rotation details.

Timeout is a biggest issue. Most of top players got tip from HackerRank email to use matrix manipulation called ?.

Read editorial notes, please.

Time spent in the contest:

2+ hours

Study Google employee's code

So simple, it will take less than 20 minutes to write and read:
C++

C++

Study facebook employee code:

1. Code looks like Julia's, so Julia will study more on this implementation: Rank 40 (7000+ players)

https://www.hackerrank.com/maxvv

Java 8

Study Amazon employee's code:

Java

Important!! Study the above code, Julia, you do not need to rotate the matrix, just compare each pair of numbers:
Java Code to study

line 24 - 36.

Stanford university:

Java 7


Lesson learned:

Hackerrank sent out an email for the tip - use matrix exponentiation, top players used the tips and also if Julia checked the discussion session, top 500 players were discussing the matrix exponentiation as well. 

Julia has to pay attention to detail, go through the discussions and involve discussion as well. 

From score 4 to 40, it takes some research, and change the design of algorithm accordingly.

Follow up after 3 months


March 8, 2017
1. Read blogs written by a facebook scientist:
blogs about algorithms

   Study one scientist a time, figure out what I can learn from his experience. Ginseppe M. Mazzeo

2. Understand the algorithm, post is on code review.

HackerRank - week code 27 - Bronze medal III

Dec. 28, 2016

Introduction
As a hackerrank player, Julia has over 8 months experience. She just likes to be a weekend hackerank player. But she could not find anything in late December, she was busy with holiday parties and missed one contest in December.

But at the end of December, she studied the code written by over 20,000 players, and found one of players played a lot of week code contests.

So, Julia played the week code 27, and she had good time to play and learn something new.

Workout

Facts:
Worked on 5 algorithms -
first one, tailor shop, hackonacci matrix rotation, zero-move nim, last one: how many substrings

Her most favorite algorithm, it is an easy algorithm. But it is fun and a lot of challenging for her. Time complexity is the biggest concern.

Tailor shop


And then, she worked hard on the algorithm, she just enjoyed and then was happy that recursive function does some work for her; and took 1 or 2 hours to study game - Nim, and had a good time to study some game, mathematics.

Hackonacci matrix rotation

score 4 - maximum score 40

Preprocessing, and time complexity is the biggest issue


Zero-Move Nim

Her practice on recursive solution (2+ hours), score 5 - maximum score 50
A lot of fun to practice - learn recursive function
https://gist.github.com/jianminchen/6c0dea2e0f6d500543db06ff640005a9

Using nim sum:

https://gist.github.com/jianminchen/cf2544581810f6f0c614ecc4184861ae

Study code submitted by Google employees:

Java code:

C++ 14 code

C++ 14




How many substrings




Tip to share:
Read discussion on HackerRank, and find out top players - what they are discussing, tips they share in the contest or after the contest.




Monday, December 26, 2016

Leetcode 15: 3 sum ( II)

Dec. 26, 2016

Problem statement:
https://leetcode.com/problems/3sum/

Review the algorithm:

Previous work:
http://juliachencoding.blogspot.ca/2016/05/leetcode-17-3-sum.html

Array.BinarySearch

Code review:
http://codereview.stackexchange.com/questions/37922/given-an-array-find-any-three-numbers-which-sum-to-zero?rq=1

The idea used in the above code review, time complexity is O(n*n*logn), time limit exceed.

Here is C# written by Julia:

https://gist.github.com/jianminchen/d483ccbc33940bc51cab7996e94a4950

Highlights of improvement:

1. Use Array.ToList() API;  2. Write a function PrepareKey()
https://gist.github.com/jianminchen/d17ad71a561193984e75ab4e7fb91073

2. Comment out the statement:
//int[] searchArray = nums.Skip(j + 1).ToArray();  // O(n) -> make algorithm O(n*n*n)
https://gist.github.com/jianminchen/cbc62795cc5eca621c395a7a5dc3f6bd

Two pointers technique 

Best solution is to use two pointers, therefore, time complexity is O(n*n) instead.

May, 2016
http://juliachencoding.blogspot.ca/2016/05/leetcode-17-3-sum.html

Code review and improve C# implementation on Dec. 26, 2016:
https://gist.github.com/jianminchen/9c62e27297ff94052320160b6967a61c

Stackexchange.com code review link:
http://codereview.stackexchange.com/q/150920/123986

Good news! win Best Question badge (over 10 up-votes) on stackexchange.com, gain 55 reputation on this 3 sum question. Less than 24 hours after publishing.


Two versions of code from code review:
1. From the code review:
http://codereview.stackexchange.com/a/150938/123986
C# code:
https://gist.github.com/jianminchen/dfebe273c5beca0fbbb52981f3934ded

2. From code review:
http://codereview.stackexchange.com/a/150952/123986

C# code:
https://gist.github.com/jianminchen/9ba704a49e740abad0cef99b4d760b69



WTA coach - Rob Steckley

Dec. 26, 2016

Introduction
Julia always learns something from every player, specially WTA top-seeds player. She likes to take some notes, and do some research on the ideas.

Coaching:


https://www.youtube.com/watch?v=wUmG7dkojr0

Lucie Safarova On Court Coaching

https://www.youtube.com/watch?v=ah1KJ32u7dY&t=273s


https://www.youtube.com/watch?v=JOfKlgf5IN8

Back to basics, do not talk to yourself negative. You are a big girl.

https://www.youtube.com/watch?v=AUf4Fven0yU

Make sure the percentage is high in service game ?.
Big target, make it overwhelming...

https://www.youtube.com/watch?v=KkDWTU66hjk

Calm down. At beginning, get overpower. A little less, ...


https://ca.sports.yahoo.com/blogs/eh-game/canadian-rob-steckley-coaches-lucie-safarova-to-the-australian-open-women-s-doubles-title-121423932.html


More watching:

Quality on-court coaching: "Do the right thing at the right time" - Beni Linder
https://www.youtube.com/watch?v=FJFiiGZXTho

Lindsay Davenport First On Court Coach With Madison Keys | 2015 BNP Paribas Open
https://www.youtube.com/watch?v=JsPMRCJcrto


Andrea Petkovic preparing for the Asian swing of the WTA
https://www.youtube.com/watch?v=NIyVeBMH0H0

Code review: Check whether an array contains all distinct values

Dec. 26, 2016

Study the code review:


http://codereview.stackexchange.com/questions/98383/checking-whether-an-array-contains-all-distinct-values

Code Review: Check if the array contains duplicate values

Dec. 26, 2016

Study the code review:

http://codereview.stackexchange.com/questions/150777/check-if-the-array-contains-duplicate-values


Leetcode 226: Invert a binary tree

Dec. 26, 2016

Study the algorithm:

http://codereview.stackexchange.com/questions/150761/inverting-a-binary-tree

Previous blog:

http://juliachencoding.blogspot.ca/2015/06/leetcode-invert-binary-tree.html




HackerRank - Jesse and cookies

Dec. 26, 2016

Study the algorithm:

http://codereview.stackexchange.com/questions/118816/hacker-rank-jesse-and-cookies


Study C# priority queue implementation:

https://www.codeproject.com/articles/126751/priority-queue-in-csharp-with-help-of-heap-data-st.aspx


Read the discussion forum on HackerRank:

https://www.hackerrank.com/challenges/jesse-and-cookies/forum

Discussions:

1. Use two heaps to handle the input, simulate a priority queue.

Study Java code:
https://gist.github.com/jianminchen/c34720a91e761163d73c9f1d90cdb065

C# PriorityQueue - using array to build a minHeap, the idea is here:
https://www.hackerrank.com/challenges/jesse-and-cookies/forum/comments/119020


Review this one - using array to maintain the min-heap
http://codereview.stackexchange.com/questions/68530/minheap-implementation

Heap implementation in C#:
http://codereview.stackexchange.com/questions/131397/heap-implementation-in-c?rq=1

Practice and will make it a PriorityQueue later, add push/ pop method:
https://gist.github.com/jianminchen/e2f95c9564ccc34b7011a9a4edf55d96

Heap selection sort in Java

http://codereview.stackexchange.com/questions/97958/heap-selection-sort-in-java?rq=1




Code Review: Integer is power of 2

Dec. 26, 2016

Study the algorithm:

http://codereview.stackexchange.com/questions/150780/check-if-a-given-integer-is-power-of-two/150781#150781

Read more about power of 2 through the search:

http://codereview.stackexchange.com/search?q=power+of+2


Sunday, December 25, 2016

Leetcode 333: Largest BST subtrees

Dec. 25, 2016

Study the solution,

https://github.com/jianminchen/LeetCode-17/blob/master/333_v1.cpp

Also, read the article on code review:

http://codereview.stackexchange.com/questions/117325/find-if-a-given-tree-is-subtree-of-another-huge-tree

Chinese version:
http://blog.csdn.net/qq508618087/article/details/51731417


Leetcode 250: Count Univalue Subtrees

Dec. 25, 2016

Study the solution:

https://github.com/jianminchen/LeetCode-17/blob/master/250_v1.cpp

Study the article:


Christmas Challenge - Week Code 27 - How many substrings?

Dec. 25, 2016

Problem statement:

https://www.hackerrank.com/contests/w27/challenges/how-many-substrings

Advanced algorithm

Maximum score 100

Julia likes to work on the string problem, she likes to do some research before she write code.

She chooses to use dynamic programming, memorization tactics. Also, she is looking into the data structure -

http://www.cs.jhu.edu/~langmea/resources/lecture_notes/tries_and_suffix_tries.pdf

Trie, Suffix Tree, Suffix Array, FM Index

She likes to design the algorithm, avoid timeout, out-of-space issue. And she planed to go to a Christmas party by skytrain to Surrey, she has to have a nice dinner with over 30 people.

Now it is 12:15pm - 6pm, she likes to make some good points on this contest. Now, she is ranking 2230/ 6000.

http://stackoverflow.com/questions/6416050/how-to-create-a-trie-in-c-sharp

http://stackoverflow.com/questions/6022848/how-to-find-a-word-from-arrays-of-characters/6073004#6073004

Google
bloom filter/ scrabble algorithm/ ...

Julia, do not make things too difficult. Use string search, DP, memorization
Work out a simple example,

Simplify - Make a few points first 

For example, suppose that abcdef, there are how many substrings:

string length = 1, there are 6, a, b, c, d, e, f
string length = 2, start position from 0 to 4, total is 5
string length = 3, start position from 0 to 3, total is 4
string length = 4, start position from 0 to 2, total is 3
string length = 5, start position from 0 to 1, total is 2
string length = 6, start position from 0, total is 1

And then, next, using dynamic programming, memorization - space is too big.
string "abcdef", S(N), N = 6, S(N) = 6 + 5 + 4 + 3 + 2 + 1 = 21
add one more char, "abcdef" + "g", so, possible new substrings:
abcdefg
bcdefg
cdefg
defg
efg
fg
g

What I need to do is to search the possible substring through the original string: "abcdef",
now, it turns to a substring search problem.

KMP, Rabin search, ....
http://juliachencoding.blogspot.ca/2016/09/hackerrank-stryker-code-sprint-grind_3.html

Scored 50 of maximum score 100.
subtasks:
For 30% of the cases, 1 <= n, q <= 100
For 50% of the cases, 1 <= n, q <= 3000
For 100% of the test case, 1 <=n, q <= 100000

Rank:  996 (From 7260),   top 20% - Very good! stop here and go to Christmas party! (5:10pm)



Blog reading:
1. http://www3.cs.stonybrook.edu/~rezaul/ACM-ICPC/GNY-2015/regional-2015.html

2. https://www.hackerrank.com/syuxuan


Algorithms for Christmas Day

Dec. 25, 2016

Julia likes to work on algorithms on Christmas day. Because the road is full of ice outside her home, she could not attend the Christmas party by driving her car, she choose to stay at home and have some fun to play with algorithm.

First one she found at 12:54am, first hour of Christmas day:

http://codereview.stackexchange.com/questions/6774/check-if-a-binary-tree-is-a-subtree-of-another-tree/6842#6842

Will work on more in the day time.

http://codereview.stackexchange.com/users/1659/winston-ewert?tab=tags

http://meta.codereview.stackexchange.com/questions/6379/best-of-code-review-2015




HackerRank - university code sprint - Array construction - code review

Dec. 25, 2016

Introduction
A few of facts about the algorithm:
1. In contest, spent over 10 hours to work on
2. The algorithm is advanced one
3. Score 8 out of 80
4. The algorithm is really a challenging one
5. Spent over 10 hours to work on after the contest, studied C# code


http://juliachencoding.blogspot.ca/search/label/array%20construction%20%28series%201%20of%205%29

Workout 

1. Plan to write a code review request on stackexchange.com.
2. Need to study how to post a good code review on stackexchange.com
3. Be careful that do not get down vote, off-topic
4. Put down ideas why to ask code review
5. Julia also learned through the code review, how to write better English, her grammar mistakes.


Code Review Link

Case study:
http://meta.codereview.stackexchange.com/a/1035/123986

http://meta.codereview.stackexchange.com/users/11974/user1131146-account-abandoned


Saturday, December 24, 2016

HackerRank - Circular Array Rotation

Dec. 24, 2016

Problem statement



Introduction:

http://codereview.stackexchange.com/questions/145643/circular-array-rotation-java?rq=1

Answers:

http://codereview.stackexchange.com/a/145649/123986

Workout

Practice the algorithm using the above answer.

Follow up after 3 months

Earn an "announcer" badge (Share a link to a question later visited by 25 unique IP addresses) for "Circular array rotation Java".


Stackexchange.com code review - Find all stepping numbers in range n to m

Dec. 24, 2016

Problem for code review:

http://codereview.stackexchange.com/questions/149096/given-n-and-m-find-all-stepping-numbers-in-range-n-to-m/149456#149456

Detail:


I really like the code review conducted by @twohundredping, the Advanced topic with code is my most favorite one (Given N and M find all stepping numbers in range N to M). I put together C# code and also test the code using input: start = 10, end = 20.
I also learned the coding standards @twohundredping as well. If it is ok, I like to post as an answer, technically, I like to post it as comment, but less than 50 reputation, I could not do it.
Please read my code using C#, the solution is an excellent workout for algorithm problem solving. The code link: https://gist.github.com/jianminchen/28b656f16aa58a00687e823eb0aaf212

Actionable Items:
Understand why a post is deleted. 









Friday, December 23, 2016

How to be best people for the job?

Dec. 23, 2016

Introduction

It is the second time to read the same article in 2016. So, Julia likes to take notes this time.

Share her own personal story as well. One time, Julia was in the important meeting, and then, she noticed that some one was typing on the laptop very loud, and then, she was kind of nervous. She got distracted, and lost focus on the question. Her first thought was that people are getting trained to take notes. It is like on the court.

Haha, it is a game tactics, and test your ability to stay focus, despite distractions.

Write down some notes, and do some research later.

Here is the article call hiring best people ...

Workout


Always write down the great ideas, and then, think about more later. 

1. Begin phone screens 15 minutes early, 15 minutes late, or not at all. 
Why? 
To find people who are always ready for the job. 

2. Make the interview schedule as confusing and unpredictable as possible. 
Why? 
To find people who don't need instructions. 

3. Make sure something goes wrong during the presentation Why? To see how the candidate adjusts to less-than-ideal circumstances

4. During the interview, make a ton of incorrect assumptions
Why?
To weed out candidates who are easily annoyed. 

Is he a jerk about it or does he stay cool? This is how tech companies find out what a candidate would be like to work with when the shit inevitably hits the fan. 

5. Ask the candidate to solve your own, specific problems
Just pretend we already tried that and it didn't work
Why? 
Because you really need help with this problem

6. Have the interview frequently move between different rooms
Why?
To find people who are still excited, even when they're uncomfortable

7. Ask the same questions over and over again
Now that we've talked about your experience, let's talk about  your experience. 

Why? 
To test consistency

In the tech world, predictability is a good thing. This a great tool for testing the candidate's consistency. Candidates should only be wildly inconsistent with their answers when interviewing for senior roles. 

8. Conduct dual interviews with a good cop / bad cop vibe
Why? 
To find people who can multi-task under pressure

Put the candidate in the middle of a conference room with interviewers at both ends of the table. Is the candidate able to simultaneously direct her attention to both interviewers while sufficiently answering each question at the same time? Or is she clearly exhausted and wondering why she even agreed to this interview? This is a great indicator of how the candidate will perform during a crunch. 

9. Ask a question, then start typing very loudly

Why?
 To find people who remain focused despite distractions

Ask the candidate a question. Then, as soon as he starts to answer, start typing loudly. Apologize and say you're "listening, just taking notes." You could be taking notes, or you could be writing an email to your estranged father, doesn't matter. See if the candidate can remain focused on the question or if he gets lost. This will help you find candidates who don't let tiny distractions get in the way of finishing the job. 

10. Three months later, call and offer the candidate a job she didn't apply for
Why? 
To find people who are determined


This is a great way to weed out people who obviously didn't really want the job in the first place. Does the candidate fight for the job he wanted? Does he take the offer because he thinks it's the best he can get? Or does he turn it down because he already found another job months ago? This tactic is a good way to suss that out. 

Feb. 27, 2017
Additional reading: here's Google's secret to hire the best people

Thursday, December 22, 2016

HackerRank - weekcode 27 - Tailor Shop

Dec. 22, 2016

Problem statement:

https://www.hackerrank.com/contests/w27/challenges/tailor-shop

Easy algorithm, need to work on timeout issue carefully.

C# solution:  score 15.8   maximum score: 20

https://gist.github.com/jianminchen/3a412f04331e23c0d57b1f28b3147bf1

Comparison

Comparison with the top 1 player on Dec. 22, 2016:

https://www.hackerrank.com/contests/w27/compare/jianminchen_fl/rickytheta

https://www.hackerrank.com/contests/w27/compare/jianminchen_fl/Rima

https://www.hackerrank.com/contests/w27/compare/jianminchen_fl/evanlimanto

https://www.hackerrank.com/contests/w27/compare/jianminchen_fl/pablo_aguilar

Actionable Items:

Please write down the analysis. Give some warmup talk on this algorithm.




Time complexity - code review

Dec. 22, 2016

Just quickly review stackexchange.com code review  - :

1. Sort by votes: 48 result:
keyword for search:
time complexity analysis

http://codereview.stackexchange.com/search?q=user:40480+[time-limit-exceeded]

http://codereview.stackexchange.com/search?q=user:11728+[time-limit-exceeded]

http://codereview.stackexchange.com/search?tab=votes&q=time%20complexity%20analysis

2. keyword for search:
space trade for time
24 results:
http://codereview.stackexchange.com/search?tab=votes&q=space%20trade%20for%20time

3. keyword for search:
brute force
Sorted by votes, 456 results:
http://codereview.stackexchange.com/search?tab=votes&q=brute%20force%20

3. keyword for search:

http://codereview.stackexchange.com/questions/tagged/cyclomatic-complexity

http://codereview.stackexchange.com/users/54718/caridorc?tab=tags


HackerRank - week of code 27

Dec. 12, 2016

Work on HackerRank week of code contest first time. Here is the contest information:

https://www.hackerrank.com/contests/w27/challenges

Continue to work on Day 4 -

Zero-Move Nim

Medium level algorithm, maximum score 50, Julia made it 12.50

So, she likes to do some research and see if she can understand the algorithm, and write a short algorithm. Time: 8:50pm, 3 more hours before the closing time.

Study the lecture notes first:

http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf
http://codeforces.com/blog/entry/20357


Two submissions:
1. One uses recursive solution.


2. One used Nim knowledge.


Monday, December 19, 2016

Stackexchange.com - Let JavaScript experts come to you

Dec. 19, 2016

Introduction

If you work hard and share your JavaScript knowledge, the expert will come to help you and then give out answer to the same question, so you learn from the other how to do an excellent job. 

Julia chose to review radix sorting algorithm, answer one of code review in JavaScript. She edited her answer over 10 times.  She spent 2 hours the first day, and then, she added more hours, reviewed the structure of JavaScript, so she added "revealing module pattern" code, in order to encapsulate better using an object. Suddenly, she found out that some one wrote a very good answer 10 hours ago.

What a surprise! 

Read more about this talent - My JavaScript teacher:
http://codereview.stackexchange.com/search?q=user:120556+[javascript]

Favorite answer:
http://codereview.stackexchange.com/questions/144803/implementing-radixsort-using-javascript/150288#150288

Julia found another JavaScript teacher: 
http://codereview.stackexchange.com/search?q=user:11919+[javascript]

Workout plan


Highlights of reviewed compared to Julia's

http://codereview.stackexchange.com/a/150288/123986

1. The radix sort is more time-efficiency - optimise with saved sorted items first, only apply radix sort iteration to unsorted numbers.

2. JavaScript - more knowledge, more advice
3. Excellent code in JavaScript

Julia got her first hat on stackexchange.com. She was too excited!

Searching and reading......
http://codereview.stackexchange.com/users/489/jerry-coffin?tab=tags

http://codereview.stackexchange.com/users/18427/malachi?tab=tags

http://codereview.stackexchange.com/users/53773/ismael-miguel?tab=tags&sort=votes&page=1

http://codereview.stackexchange.com/users/42401/peilonrayz

http://codereview.stackexchange.com/users/34073/hosch250?tab=tags

Sunday, December 18, 2016

StackExchange.com - How to find a mentor? (II)

Dec. 18, 2016

Introduction
Julia did get first up-vote from stackexchange.com yesterday through her answer to the question, that is very important one, and also her work was quickly proved in less than 1 hour to be an answer by the moderator janos.

She wrote down in the comment to document the joy: Unbelievable! I got my first teacher badge and also privilege to comment anywhere since I just reached 50 reputation. So excited. Actually, the code is written by ICPC coach, and the author link:   linkedin.com/in/derekhh 

It takes a lot of time for Julia to know how to find stackexchange.com code review, she tried so many things and she learned in 2016, but she stopped. Pramp.com is such a great tool to connect to other peers, but Julia decided to quit after 8 times experience. After that, she tried to facebook code lab. She enjoyed the experience but she still felt that her time is limited, and she liked to work on something better. She kept searching...

A lonely journey to search the ways to improve, and the stackexchange.com makes it a little challenge for Julia. Julia started to learn how it works.

But she also started to ask help to improve her coding practice mainly on HackerRank, she get a lot of quality work from highly-reputation people from stackexchange, she felt that if people saw her potential as a good player, people will welcome her with more quick and efficiently response.

http://codereview.stackexchange.com/users/12390/janos

http://www.janosgyerik.com/


https://www.codementor.io/janosgyerik

http://www.janosgyerik.com/apps/

Workout plan

program challenge: 120
http://codereview.stackexchange.com/search?q=user:12390+[programming-challenge]

JavaScript: 161
http://codereview.stackexchange.com/search?q=user:12390+[javascript]

string:
http://codereview.stackexchange.com/search?tab=votes&q=user%3a12390%20%5bstrings%5d

http://codereview.stackexchange.com/users/9452/josay?tab=tags

http://codereview.stackexchange.com/search?q=user:9452+[programming-challenge]