我从解决 LeetCode 挑战中学到的 3 个有用的经验教训

我从解决 LeetCode 挑战中学到的 3 个有用的经验教训

作为成为更好开发人员的过程的一部分,我已经解决了不同网站上的编码问题。起初,我认为这将是一个非常无聊的练习,我会讨厌它。然而, 我很享受 花时间在这些平台上,我可以说 我的代码因此得到了改进 .

昨天我在想我解决问题的过程是如何演变的 我在其中一个页面中从我的路径中提取了 3 个教训 .

今天,我将与您分享我从其中一个平台上解决数十个挑战中学到的 3 个经验教训。我敢肯定,如果你牢记这些教训 你会学得更快,更多 .

你准备好提高你的学习了吗?

我与代码挑战网站的故事

夏天我通过了一些面试,得到了我的第一份工作 后端开发人员 .我从 9 月 1 日开始这份工作,但我知道我在 7 月 28 日得到了这份工作。出于这个原因,我开始参加一个编码挑战: #100DaysOfCode .

如果您想了解有关我计划如何改善我作为开发人员的个人资料以及我如何为这份工作做好准备的更多信息,我建议您查看这篇文章:

[

想成为更好的开发者?这是我实现它的计划

我会发现我计划在 2022 年成为更好的开发人员的两个步骤。遵循它,我能够获得我目前的……

媒体网

](/codex/want-to-become-a-better-developer-this-is-my-plan-to-achieve-it-1ec318f5200d)

在这个挑战的第一天,我创建了一个 资源清单 .在这个列表中,我列出了我想学习的语言、我需要掌握的概念、我想开发的项目以及一对解决编码挑战的网站。

我知道如果我准备好解决编码问题,我会成为一个更好的开发人员。这种做法 教你很多关于数据结构的知识 和不同的 优化代码的方法 .我选择的网站之一是 力卡 .

力卡

LeetCode 仪表板

你可能已经听说过 力码 .我不确定,但可能是 最著名的页面 关于编码挑战。这是因为在 LeetCode 中你要 发现真实且经过验证的技术面试问题 .

此外,该平台还为我们提供了一些 学习计划 了解有关数据结构或算法等某些主题的更多信息。

Some topics on 力卡

使用这个平台,我可以解决许多不同的编程挑战并尝试更多。想一想,我可以提取 3 条不同的建议,这些建议是我在这个平台上解决挑战时学到的,我希望有人在我解决我的第一个练习时说过我。

我敢肯定,如果我在了解更多信息之前就知道了这些技巧。你想发现这些技巧吗?

我在 Leetcode 中学到的解决挑战的技巧

除了发现我对数据结构和代码的有效方式知之甚少之外,仅尝试解决挑战并没有教​​会我太多东西。

但是,经过一些反思,我可以提取 3个非常有趣的提示

1.你总是应该阅读所有的声明

您将在其中找到一些练习 声明中有很多文字 .出于这个原因,我已经停止慢慢阅读所有的陈述。当我开始一个新的练习时,我试图从陈述中找出最重要的词,然后我快速阅读了这些例子。后来我发现 这种做法是错误的 .

如果您不阅读该声明,您将丢失信息。

的确,在许多练习中,你会发现 小故事 或一些 不相关的细节 声明里面。不过,在这部分练习中,您将 找到有关用例和需求的所有信息 .

所以不要犯我的错误 仔细阅读所有声明 (虽然如果你发现一个不相关的故事,练习你的快速阅读是可以的)。因为如果您不这样做,您将编码,提交失败,返回语句,重新编码您的解决方案...... 进程地狱 你可以避免只慢慢阅读声明。

An example of a statement in LeetCode

2. 多思考比编写你的第一个想法更好

当我开始解决这些问题时,我提交了我想到的第一个解决方案。随着时间的推移,我发现这种做法不会教给我任何东西。

如果这个想法很快出现在我的脑海中,这意味着这个问题对我来说不是挑战。另外,我如何提交我的第一个想法,在很多情况下,它只是一对循环和 if,没有优化,没有好的实践等。只有一个 一堆意大利面条代码 为解决问题。

能够解决问题并不能使你成为一名优秀的程序员。

但解决问题还不够 .每个人都能解决问题,但不是每个人都能给出一个 可读 , 可维护 , 和 高效的 解决方案。如果我们想成为更好的程序员,这些都是我们必须注意的方面。

图片from 像素

现在,当我试图解决一个问题时,我总是有第一个想法。但 我不会立即编码 .我想我知道一些方法 优化我的初始解决方案 使用我所知道的良好实践和数据结构。如果没有想到,我开始编写解决方案 试图始终保持可读性和可扩展性 的代码。

试试这个练习,看看自己如何 它可以帮助您更好地编码 .

3. 你可以改进你的解决方案

如果您不熟悉使用这种类型的平台,那么在大多数情况下, 您不会编写最佳解决方案 .为此,您始终可以改进您的解决方案。

作为一般规则,我了解到 O(n²) 解决方案不好 ,并且在许多情况下,平台不会接受它们。因此,当我编写一个我认为它是最好的解决方案时,而不仅仅是我在建议 2 后想到的第一个解决方案时,我会提交它。当我提交时,我开始 在 google 上搜索更优化的解决方案。

One of the solutions that I’ve submitted to LeetCode

我尝试搜索大约 10 分钟,以便 寻找有效的解决方案 .我理解它并注意在接下来的练习中应用的要点。反过来,我尝试 想想为什么我没有想出这个解决方案 .

A more efficient solution than the above code

这是一个非常好的实践,它让我学到了更多,因为我不仅从我的解决方案中学习,而且还从一个真正的最佳解决方案中学习。

最后的想法

乍一看,解决编码问题听起来很无聊。实际上,您必须考虑使用 数据结构算法 .但我们不能忘记,这些概念是开发的重要组成部分。

如果我们想 成为更好的开发者 我们必须 掌握 这些方面。解决 LeetCode 等网站中的挑战可能是一种非常有趣的学习方式。

此外,我们可以 学到的不仅仅是复杂的概念 要是我们 想一想 关于我们如何解决问题以及我们向页面提交的解决方案。出于这个原因,在这篇文章中,我与您分享了 3个不同的课程 我在解决 LeetCode 问题时学到的。

我希望它们对你和对我一样有用。

您使用这些类型的页面吗?您对解决问题有什么建议吗?

想了解更多关于可以解决编码问题的网站吗?检查这个;)

[

我最喜欢的 3 个网站来解决编码挑战

️ 如果您想在 2022 年成为更好的开发人员,为什么必须尝试他们。

媒体网

](/codex/my-3-favorites-websites-to-solve-coding-challenges-1bd3b47c6fd0)

结论

谢谢!非常感谢您阅读这篇文章。如果您想了解有关技术和开发的更多信息,请不要忘记 跟着我 .我很想知道你对此的看法,所以不要老兄 写在评论里 ,我会读你的。

如果这篇文章帮助你记住了,你可以 鼓掌 并与您的战友分享。

关于作者

你好!很高兴见到你!我是 耶稣拉加雷斯 .目前,我作为一名 后端软件工程师 我是 完成我的计算机科学学位 在加的斯大学。

我的两个爱好是 技术沟通 ,所以我抓住一切机会谈论或写技术。我喜欢将复杂的概念转化为每个人都能理解的简单概念。

想要连接?

Instagram | 领英 | YouTube | 推特

[email protected]

谢谢! ❣️

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37136/07271710

posted @   哈哈哈来了啊啊啊  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示