javaweb解决编码问题_如何解决任何编码问题?

javaweb解决编码问题

“首先,解决问题。 然后,编写代码。” 约翰·约翰逊
每当给出任何编码问题时,大多数人都会根据本能来遵循一些预定义的步骤,从而使他们可以有效地解决该问题。 在有意或无意的情况下,即使您不知不觉地被问到任何问题,您也可能会遵循其中的一些步骤,但是在阅读本文之后,您将尝试与这些令人惊奇的步骤相关联,从而能够更有效地解决问题。
因此,在本文中,我将讨论解决任何编码问题时可以采取的5个步骤✨

世界需要开发者,为什么我要花时间从事竞争性编程?

我自己是一名开发人员,我发现那里的大多数开发人员(包括许多“非常”熟练的开发人员)在数据结构,算法和问题解决方面通常都不太好。 可悲的是,如今,许多人都在挤一些开发应用程序或简单软件的基本步骤,并自称为“编码器”。

相关吗? (来源: https : //www.picomico.com/tag/Algorithm

随着每个人的发展,如今,深入学习数据结构和算法已成为学生的第二选择,即使对于每个学生来说,这都是必不可少的领域,

尽管我是一名开发人员,但对竞争性编程的投入并不多,但我仍然尝试花更多的时间来学习数据结构和算法以及如何编写高效的代码,并且我鼓励并建议每个人也都应该专注于此。

因此,这里有一些示例,其中的数据结构,算法和竞争性编程(通常)可以帮助学生-

  1. 大学分班
  2. 编写高质量的代码
  3. 高效代码(时间和空间复杂度)
  4. 充分利用资源
  5. 逻辑推理
  6. 暴露(有大量的CP学生在学习)
  7. 机会(大量的CP竞赛在那里)
  8. 在这个过程中,您将获得很多乐趣
“代码教您如何面对真正的大难题
—杰克·多西

现在转到主题,

遇到任何编码问题时,我应遵循的5个步骤

几天前,在进行编码问题时,我发现无论解决什么问题,我都有自己的模式。 我做了更多的问题,并在解决任何问题之前和之后都写下我的想法。 令我惊讶的是,有一个共同的模式,在不知不觉中我正在做这5件事,而现在我知道这5步,我就能更有效地解决问题。

再次,正如我在简介中所说,很有可能您也无意识地使用了这些步骤,但是当您发现自己将开始有意识地应用这些步骤之后,便会注意到其中的区别😁

1.了解并分析问题

阅读问题,开始思考,如果可能,在纸上写下给出的内容和需要查找的内容。

问你自己,

—您是否能够完全理解问题?
—您能向外行解释这个问题吗?
—需要多少输入?
—这些输入的输出是什么
—您可以从问题中分离出一些模块或零件吗?
—您是否有足够的信息? 如果不是,请尝试再次理解该问题。

看到您不会卡在xD上(来源: https : //rocketjones.com/nerd-jokes-love/
2.仔细阅读示例输入和示例

仔细阅读一些示例输入并提供更多示例,这肯定可以帮助您很好地理解问题,此外,它还为您提供了清晰的方式来确定您的代码应处理多少种情况以及所有可能的输出结果范围。

这就是我的建议

—举非常简单的例子并找到输出
—进行更复杂,更大的输入,以了解输出结果,我们想要多少个用例

然后,“是时候处理边缘案例了”

—尝试无输入的问题,现在应该输出什么
—试用输入无效的问题,现在应该输出什么

确实有太多! (来源: Google图片
3.解决问题

当手头的问题很大时,此步骤确实非常有用。 在这种情况下,我建议以下做法:

—尝试为手头的问题制作流程图或UML
-将问题分为不同的模块或子问题
—尝试使每个子问题具有独立的功能
—通过按要求的顺序或必要时调用它们来连接这些子问题(可能一个函数将调用另一个子函数)
—处理问题时尝试使用类和对象,这些问题试图实现一些实际问题(例如管理系统等)

程序员真正需要的流程图😂(来源: Google图片
4.开始求解/编码

现在,您已经分析了问题,是时候实际编写代码了。 如果您不能立即完全解决问题,请尝试为更简单的子部分编写代码,然后再逐步解决问题,并逐步获得新的想法。

只需记住三件事,您肯定会弄清楚这条路的😁

-您的起点
- 你现在在哪?
- 你的目的地是哪里?

另外,在进行面试时,不要浪费时间弄清楚整个解决方案,然后告诉面试官,继续简化问题,并告诉面试官您如何解决问题。

-告诉面试官您打算如何开始
-告诉您现在有什么主意
—找出您在该问题中面临的最困难的部分
—忽略“最困难的”部分一段时间,然后开始解决一个更简单的子部分,这将使您有更多的时间考虑前一部分
—一旦完成了简单的子部分,就尝试对困难部分也采用类似的方法
—在解决问题时,您可能会想出更好的解决方案,并告诉面试官

5.回头了解更多

现在,这是最重要的部分! 完成后,回顾一下是否可以改进代码,是否有其他方法可以解决给定的问题?

资料来源: Google图片
不要只是在完成后就放弃,在对可能的解决方案感到满意之后就放弃,而您已经彻底探索了问题!

完成代码编写后,您应该问自己一些问题

  1. 此代码是否针对所有可能的输入(包括边缘情况)运行
  2. 还有其他解决方法吗?
  3. 代码高效吗? 可以更有效吗?
  4. 代码可读吗?
  5. 如果其他人向您显示了此代码,您是否能够理解?
  6. 性能可以提高吗?
  7. 可以使用其他一些可以提供更好结果的算法吗?

除了这些问题之外,还要检查其他人对同一问题的解决方案,看看他们是如何解决的,在看到其他人的代码的同时您会学到很多。

摘要

这是我们在本文中讨论的5点

and分析并理解问题
👉查看样本输入和用例
the将问题分解为较小的子部分,功能或模块
👉开始求解/编码
👉完成后,请回顾是否可以改进代码,是否有其他方法可以解决给定的问题,

就是这样,我希望本文能为您的问题解决能力增值😃

想提高自己的技能吗?

有兴趣提高您在数据结构,算法和竞争性编程方面的技能吗? 我已经启动了一项名为“每日代码”的计划,每天我们都会一起解决一个问题,请查看以下存储库:

如果觉得有用,请给它一个⭐

每日代码

希望这篇文章对您有帮助

如果您想讨论一些问题,请随时与我联系:D

如果您发送反馈,建议或询问,我会非常高兴。 而且,我喜欢结交新朋友,我们可以成为朋友,只要给我发邮件。

非常感谢您阅读全文。 如果您需要任何帮助,可以与我联系:
电子邮件:madhavbahl10@gmail.com
网址: http//madhavbahl.tech/
GitHub: https : //github.com/MadhavBahlMD
领英(LinkedIn): https//www.linkedin.com/in/madhavba hl /

翻译自: https://hackernoon.com/how-to-approach-any-coding-problem-9230f3ad6f9

javaweb解决编码问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值