[水] 周赛的语言分布数据
5111
2023.01.17
2023.01.23
发布于 未知归属地

力扣最受欢迎的语言是什么呢?我发现大家对这个问题的答案可能有一些分歧,于是统计了下周赛中各语言的用户数量。以上上周的第 326 场周赛为例,每题中各语言的占比如下:

T1: total = 2915
Counter({'cpp': 1327, 'java': 745, 'python3': 557, 'golang': 110, 'javascript': 70, 'c': 46, 'python': 22, 'csharp': 18, 'typescript': 7, 'rust': 6, 'kotlin': 4, 'php': 1, 'elixir': 1, 'swift': 1})
T2: total = 2478
Counter({'cpp': 1164, 'java': 595, 'python3': 489, 'golang': 94, 'javascript': 56, 'c': 25, 'python': 22, 'csharp': 16, 'rust': 6, 'typescript': 5, 'kotlin': 3, 'php': 1, 'elixir': 1, 'swift': 1})
T3: total = 2056
Counter({'cpp': 979, 'java': 459, 'python3': 435, 'golang': 79, 'javascript': 46, 'c': 17, 'csharp': 14, 'python': 13, 'typescript': 6, 'rust': 5, 'kotlin': 3})
T4: total = 1807
Counter({'cpp': 946, 'java': 395, 'python3': 321, 'golang': 60, 'javascript': 37, 'c': 13, 'csharp': 12, 'python': 10, 'rust': 6, 'kotlin': 4, 'typescript': 3})

C++ 不出意外地(可能在一些扣友的眼中是意外地)夺得了使用率榜首,紧接着是你追我赶的 Java 和 Python,然后是(以灵神为首的) Go,最后甚至还有一位勇士选择了 PHP。


进一步分析,我们还可以发现一些有意思的事情。我把每题的 各语言用户数——比赛排名 画成了如下累积曲线和直方图:
第一题累积曲线:
image.png
第四题累积曲线:
image.png

第一题直方图:
image.png
第四题直方图:
image.png

可以观察到 C++ 和 py 选手更集中于前排,由于前排选手受到的关注较多,无形之中增加了这两种语言在大家心中的热门度。而 Java 则后劲很足,依靠广泛的群众基础,在后排实现了参赛人数对 py 的反超。Go 虽然人数相对较少,但凭借着参赛选手的高质量,在大家的心中占据着一席之地。


更新:把美服的数据也跑了一下。

T1: total = 10483
Counter({'cpp': 5312, 'java': 2413, 'python3': 2068, 'javascript': 178, 'python': 137, 'golang': 136, 'c': 79, 'csharp': 67, 'typescript': 23, 'kotlin': 18, 'rust': 17, 'swift': 16, 'ruby': 6, 'scala': 5, 'php': 4, 'dart': 3, 'elixir': 1})
T4: total = 5341
Counter({'cpp': 3084, 'java': 1022, 'python3': 930, 'javascript': 87, 'golang': 73, 'python': 46, 'csharp': 33, 'kotlin': 14, 'rust': 14, 'c': 14, 'typescript': 11, 'swift': 8, 'ruby': 2, 'scala': 2, 'dart': 1})

美服第一题累积曲线:
image.png

美服第四题累积曲线:
image.png
C++ 的占比甚至比国服更高,超过了一半。Java 仍然后程发力,总人数比 Python 稍多一点。


注1. 图中的 "python" 包含了 py2 和 py3,维护 py 统一。 注2. 回到本文最开始的那个问题,因为一些语言可能更适于竞赛,所以周赛的语言分布可能不能完整地代表各语言在全站用户中的分布情况,另外可能一些人在比赛时会切换语言。不过看看周赛数据还是挺有意思的。 注3. 这里暂未分析一位选手切换语言的问题,比如可能 T1 用 py 写比较方便,但做 T4 时就切换回了自己的常用语言。 注4. 本文的统计代码和数据可以在 [我的 github](https://github.com/hqztrue/shared_materials/tree/master/LeetCode/LC_contest_lang) 获取。
评论 (40)