📜  编程技巧和窍门|套装1(面向初学者)

📅  最后修改于: 2021-06-26 19:33:51             🧑  作者: Mango

本文是各种技巧的集合,这些技巧将帮助竞争编程的初学者深入了解应该做或不应该做的事情。

竞争性编程只能通过“实践,实践和实践”来改善。尝试解决您可以在习俗(geeksforgeeks.org)等网站上解决的所有问题。这将使您更加思考更多关于算法的知识。

从初学者部分开始,当您对此感到满意时,请前进到更高的级别,即简单,中等和困难等。尝试自己尝试所有问题,然后再尝试解决方案。当您得到错误答案时,不要感到沮丧,这只是学习的一部分。练习得越多,您就会学到更多。只是对编码和实践充满热情。

开始前的几天:

  1. 学习-练习重复-尝试每天学习一个新概念。每天解决问题,一两个甚至更多!在研究了一种新的算法或技术之后,我们应立即搜索其应用并尝试解决问题。就像您学习动态编程一样,请尝试解决其所有问题。适应如今大多数年轻人没有的阅读习惯。
  2. 编码前编写–自己实施所有算法,而不要从别人那里复制。在学习这些概念时,给自己写笔记。数学是开始竞争性编程的好地方。
  3. 变得锋利-在练习期间,总能解决您所学知识边缘的问题,即,您并不完全知道如何解决问题,但您知道解决该问题应了解的知识。例如,您看了一下问题,就可以说这是一个简单的图形问题,但是您对图形一无所知。
  4. 树木,图表,算法–确保您对树木,图表和重要算法的概念透彻了解,因为在每次竞赛或公司招聘会中至少有一个问题要利用树木,图表和重要算法。
  5. 简短是美好的-长期比赛对学习有好处,但请尝试参加越来越多的短期比赛。短比赛是真正的竞争性节目。我们应该养成一定的习惯,在高峰时段在编程论坛中花一些时间,在该论坛中,顶级编码员通常会进行视讯聚会,分享他们的见解,并经常参与讨论。
  6. 复杂性很复杂–不要沉迷于越来越短的执行时间。不要浪费时间过度优化您的解决方案。如果解决方案被接受,则继续下一个问题。首先只是养成每天编码的习惯,然后再担心复杂性。
  7. 艰辛必须来–有些人说坚持一个网站进行练习,而另一些人则认为您必须品尝所有内容。无论您做出什么决定,都应缓慢但一定要开始解决更难的问题。
  8. 目标职位–如果您经常参加针对职位的竞赛,请确保阅读所有先前的问题,算法和相关内容,以缩短您的工作量和选择时间。您还必须尝试先前的公司问题。

比赛开始前的最后一天,尤其是如果您尝试参加“比赛”

  1. 不要寻找新的问题,因为这可能会在您的脑海中引起恐慌。
  2. 前一天晚上有充足的睡眠。放松心情,保持压力

比赛期间

  1. 注意-大多数程序员在看到一个新问题时,都会在计划或编写逻辑代码以完成该任务之前急于在系统上键入该问题。有时它们会停留在系统中键入代码之间的某个时刻,可能需要重新开始编码。如果我们避免在破解逻辑之前输入系统信息,这将有助于节省时间。一个应该从以下开始:
    1. 至少读取问题陈述两次
    2. 分析问题陈述
    3. 在提交和输入问题之前,请牢记输入输出模式,并多次阅读问题以了解问题背后的概念。
    4. 用笔和纸来发展逻辑,然后编码
    5. 仔细阅读比赛说明(时间限制,比赛页面中使用的各种符号的含义,允许的提交数量等)
  2. 时钟在滴答作响–请密切注意时钟。如果您无法解决特定的问题,则可以选择下一步。
  3. 测试测试用例–如果不接受您的代码,请再次检查代码,检查变量声明,代码的复杂性,然后尝试检查代码中是否包含多个测试用例。

比赛结束后

  1. 社论必须–提交后;即使您的代码被接受,也不要跳到下一个问题。尝试阅读该问题的社论,这将帮助您知道该问题的更好和有效的解决方案。
  2. 周围的极客可能会更了解-检查其他知名编码人员编写的代码将揭示深刻的见解(如果允许的话)。即使复习他人对我们已解决问题的解决方案,也可能会暴露出该问题的某些独特特征,并有助于我们从不同角度看待同一问题。这里的重点是-您可能会遇到用于解决问题,学习这些算法并确保您理解它们的不同算法。
  3. 练习–如果您无法在那里解决问题,请不要担心,这只意味着您需要更多的练习。
  4. 过去教导未来–坚持一个我们至少两天都无法解决的问题是一个好习惯。在审查解决方案时,我们将了解我们偏离正确路径的地方,并将在以后的尝试中帮助我们的思考过程。我们应该记录无法解决的问题,因此我们寻求解决方案。我们应该确保在几周后复查相同的问题,并尝试完全解决它。
  5. 时间是宝贵的–准备任何事情,无论是比赛日,考试还是项目提交,都是非常重要的,而学生通常没有做好准备。最后一刻的准备往往会达不到预期的效果。给足够的时间来研究算法,解决问题并根据自己的长处和短处进行研究。

快乐编码!

本文是由我们的校园极客Rahul Agarwal,Aditya Chatterjee,Shubham Singh Rajput,Vineet Sethia,Saiteja Reddy,Shaily Seth,Mudit Maheshwari和Ajay Jain贡献的。

编程技巧和窍门|集合2(用于竞争性编程的语言)

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。