原|2024-10-19 19:04:55|浏览:54
1.格式控制。
牛客网上的每道题都需要写完整一个程序所需要的部分,包括头文件,主函数,功能函数。这也就意味着数据结构等部分都需要自己去设计,设计的不规范就会影响你的最终程序的质量,这一点和LeetCode上是又有很大的区别的。我觉得侧重点不同吧:LeetCode上主要是让你把精力集中在算法的设计上,好比是房子的初步模型已经设计好了,你只要将它装饰好就行了,不需要去管其他的细节,所以LeetCode的每道题都会给出一个函数,函数的参数什么的都已经写好了,你只要完成功能就行了。而牛客网上则是比较严格一些吧,你需要从地基部分构建起,一直到房子成型,你需要考虑到整个程序的点点滴滴,若是你使用的数据结构等使用的不恰当的话,我想这就相当于地基没打好,最后程序的性能肯定不会好到哪儿去,所以写起来的时候确实难度较大。
2.引导性。
这个问题是我最难适应的一点,就是提交一个程序的时候,最终的结果只是显示你的答案通过了百分之多少的测试用例,去不提示你你的错误处在了哪里,你需要不断的去思考自己的程序的错误到底出在何处,我觉得这确实很难,尤其是在笔试的时候你很难设计出健全的测试用例来测试你的程序,尤其是当测试用例很长的时候,所以一旦写错了,真的很通过调试找出自己的错误处在了哪里,有的时候这一点确实让人很难受的,你有时候无法通过调试找到错误处在了哪里(精力除了要集中在解决问题上,你还得设计出健全的测试用例,否则你的程序基本上是很难保证正确率的),我个人的感觉是牛客网上代码题写错以后就很难写对;但是LeetCode上则比较人性化,他会提示你的代码无法通过哪些测试用例,这样你可以通过这个测试用例去找你的代码的逻辑上的问题,引导你的思维的前进,最终解决问题(我在LeetCode上写得比较多吧,习惯了这种方式,所以突然在牛可网上)。我觉得自己的错误自己是最难发现的,因为他都是你没想到的地方,这些地方也很多也就是你一时想不到的方向,所以没有一点提示的话,你的思维真的很难继续往前走。
3.歧义问题。
这一点我感觉两个编译器上都存在,LeetCode上题目的描述是用英文描述的,但是很简练,直奔主题,要么一看就懂,要么怎么看都看不懂(我意思是不认识英文)。牛客网上则是喜欢贴切实际,每个问题都要写很多描述,跟场景结合起来,经常有什么牛牛的人出现,一旦描述太长,看起来就比较吃力,这样也会严重的影响解题的思路。