作者:谁的淡笑丶_227 | 来源:互联网 | 2023-10-14 19:38
最近在用Go写区块链。出于帮助熟悉Go语言和编程竞赛复健两个目的,想尝试用Go来刷点水题。寻找IO的正确姿势就花了很长时间,最后找到这么一篇博客,赶紧搬运来。
Go语言在程序设计竞赛中用的不多,主要是因为Go没有类似STL那样的通用容器库。用Go做竞赛题,有时也不得不写一些冗余的代码,但是Go有没有实际用途呢?我们知道,Go在速度和内存使用方面非常快,而且Go特有的CSP模型使得我们可以更容易地构建并发管道(简单来说就是Go在并发性上有优势)。那么在程序设计竞赛中使用Go究竟有什么好处呢?先来看看几大程序设计赛事对Go的支持情况,以下数据统计自2018.3.2:
-
HackerRank提供了Go 1.9.1,时限4s,内存限制1024MB(给C++14 2s/512MB),而且给你双核CPU。
-
Codeforces使用单核的Go1.5.2,时限和内存限制和其他语言没有不同。
-
LeetCode支持Go1.7.1,在时限、内存限制上也没有特殊待遇,单核,不能再多了。
-
TopCoder仅支持C++,Java和C#,没有Go。
-
Google Code Jam只要你的运行时间不超过4min。并行性完全取决于你的系统或运行程序的集群