The title is quite "Yin-ish" as it seems, but I'm not a "Yin-ist". You know what I mean.
Why I quit?
I did a quite a good job in Leetcode Weekly Contest, at least in my point of view. I won a 4th place and a 6th place in my 19 contests, and my highest global ranking is 49th.
It's remarkable! According to all my poor results among all the online/offline programming contests, there is no reason for me to give up Leetcode contest which seems perfectly suitable for my capabilities.
But I do make that decision. The quitting is of course not the kind of "throw in the towel" quitting, which is something I quite excel at, however. I quit because this contest lost its original meaning for all the contestants.
Here I'm not criticizing the contest itself, because it's still a fair and interesting contest for us to participate in. But there is always a significant distinction between the "programming contest problems" and "programming interview problems".
In programming contest, we are indifferent to the coding style, the extra time/memory space, testability and even the correctness. We come up with a theory, program it and submit it to the judging system, if there comes an "Accepted". Boom! This is our happy ending.
In real-world practise, it's hard for the judging system to tell the differences between the time complexity
O(n * logn), and the extra space complexity
O(n). This is because the judging system can't implement a strict restriction as there are always some kinds of differences between diffrent "correct" implementations, differnet progamming languages and diffrent compilers. To avoid hurting the "innocents", the judging system can do nothing but turn a bind eye on some "less-good" solutions for the problems.
But for the interviews, there are only several "correct answers" with least time complexity, least space complexity and least lines of codes. The interviewer wants you to implement the solution with the way he/she expected. There is no need to finish 4 problems in 15 minutes or less. What is actually wanted here is how you come up with your best solution, and how to prove the correctness and something else more to show that you are a equipped programmer for the company and for the team. And Leetcode contest leads us to a wrong way.
Leetcode is famous because of it's a set of programming interview problems. On average, the problems are too easy for a real programming contest like ACM-ICPC, Codeforces, Google Code Jam, etc. But the problems on Leetcode do have some subtle details which we should pay much attention during a programming interview. We just can't make a juice from these two kinds of problems with a blender. It will only cultivate incapable contestants and incapable interviewees.
So that's my understanding of truth and the reason why I quit the series of contests.