4

用什么语言刷题最有排面?

 2 years ago
source link: https://lucifer.ren/blog/2021/10/10/programming-idioms/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
用什么语言刷题最有排面? | lucifer的网络博客

很多读者向西法反应:“能不能在专题和题解里面增加 xx 语言”。

我的回答一直都是:我会尽量添加多种编程语言,但也请你不要依赖于某种具体的编程语言来学算法

熟悉我的朋友都知道,我刚开始的时候,我使用 JS 比较多,之后使用 Python 比较多,现在也在陆续更新题解的 C++ 语言,之后会考虑其他的语言。接下来的话应该是优先考虑 Java,让大家学习曲线更平滑。

但是另一方面我也强烈建议大家不要依赖于某一种具体地编程语言。我当然知道学习和切换编程语言需要时间,也体会到使用自己熟悉的编程语言效率更高。

很多读者像我反应:“能不能在专题和题解里面增加 xx 语言”。

我的回答一直都是:我会尽量添加多种编程语言,但也请你不要依赖于某种具体的编程语言来学算法

熟悉我的朋友都知道,我刚开始的时候,我使用 JS 比较多,之后使用 Python 比较多,现在也在陆续更新题解的 C++ 语言,之后会考虑其他的语言。接下来的话应该是优先考虑 Java,让大家学习曲线更平滑。

但是另一方面我也强烈建议大家不要依赖于某一种具体地编程语言。我当然知道学习和切换编程语言需要时间,也体会到使用自己熟悉的编程语言效率更高。

但问题是我们无法控制大环境。据我所知,经常更新文章的大佬使用的编程语言语法么都有,C++,Java,Python 都有的。 如果因为语言看不懂跳过,那么肯定会错过很多优秀的文章和题解。你说是不是很可惜?

那问题是我真的看不懂怎么办?一个超级有效的方式就是使用不同的编程语言刷题。比如你就定一个小目标比如用 C++刷 100 道题,这样慢慢你就对 C++ 的最最基础的特性了解了,这样下次看到别人的 C++ 题解你在看看,是不是能看懂了?这是因为大家刷题很少用一些高深的语言特性,尤其是那些大佬的题解,它们会注意这些的。因此你稍微练习一下,基本上以后看其他语言的题解就不成问题的。

很多人刚开始切换到其他编程语言会深深地感到不适应。比如怎么创建一个数组呢?怎么反转一个数组?怎么新建一个哈希表?等等等 一个个查真的是效率很低,以至于很多人都坚持不下来。

我其实刚刚在用新语言的时候也是一样的,今天介绍的网站就整理了很多常见操作的不同语言对比实现

以 C++ 的 reverse 为例:

008i3skNly1gv9ez855smj31lo0din01.jpg

你可以点击上面的编程语言查看其他语言的 reverse 是如何实现的,目前该网站已经提供了 277 个语言特性,这个工具网站对那些刚开始学习新语言的人非常有用。

我们甚至可以直接开启对比模式,以 Python 和 C++ 对比为例:

008i3skNly1gv9f2k5i2uj60y50u0wiy02.jpg

地址:https://programming-idioms.org/idiom/19/reverse-a-list

最后回答一个相关的问题,读者问的也比较多。那就是:有没有推荐的刷题语言?

其实这个问题之前回答过,今天再讲一次。一句话回答就是:建议选择一门动态语言和一门静态语言,比如选择 Python 和 C++。

原因是什么呢?

刷题以及打比赛都讲究速度,天下武功唯快不破。

这个快,一方面是运行速度快,另一方面是编码速度快。你可以看出很多人刷题,打比赛都会不断切换语言的。我们要承认不同语言效率是不一样的,这个效率可能是执行,也可能是编码。具体使用哪种语言,看你的需求。

论编码速度,那肯定动态语言快,论执行速度那肯定静态语言快。 所以我的建议是大家至少掌握一静一动,即掌握一个动态语言,一个静态语言。

我个人动态语言用的 Python 和 JS,静态语言用的 Java 和 CPP,大家可以作为参考。

一个小建议是你选择的语言要是题解比较热门的。那什么语言是热门的?其实很容易。力扣题解区,语言排名高的基本就是了,如下图:

0081Kckwly1gl6ayc10cxj30qo0i6dic.jpg

掌握语言不仅能帮助你在效率中运用自如,并且还容易看懂别人的题解。除此之外还有一个用,那就是回头复习的时候用。拿我来说, 我会不固定回去刷以前做过的题,但是一道题做过了就没新鲜感了,这个时候我就换个语言继续刷,又是一番滋味。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK