力扣第三题java_如何成为力扣竞赛全国第一?

96c2e15003a28d652b01e2275f7cf726.png

278fccee1d53e25cd3a0fcc9fb7d45a4.png

自从力扣竞赛全国排名上线以来,很多小伙伴的比赛参与热情高涨,更是涌现了很多优秀的编程大神连续霸榜,相信大家和力扣一样,都很好奇这些大神的真实面貌。

此次力扣君特别采访了 3 位竞赛种子选手来聊聊他们的比赛经验。希望对大家参加 2019 力扣杯-全国高校春季编程大赛 有帮助。

e6ad394c0c8bf289726324667dd8e2c3.png

8d35991c4ced30708342f1ecf2c905be.png
  1. 难度基本在 2-9 分之间,2 分题很难遇见,也不知道怎么形容它的简单,3-4分的题不考察算法能力,只要能把题目描述的东西转换成编程语言就成。5-6分的题会考察一些基本能力,最多的就是二分查找,排序及堆,一些基础的树相关的题也会出现在这里。7-8 分的题基本不能直接看出答案,需要一些综合能力,但常见的是考察bfs和dfs的。9 分的题呢,我也做不出来哈哈。
  2. 现在的题都会告诉你数据范围,按经验下来力扣可以支持到 1e7 的算法复杂度。也就是说数据范围到 50000 的基本是 O(n) ,到 20000 的是 O(nlogn) ,到 1000 的是 O(n^2) ,到 100 的是 O(n^3) ,到 30 的是 O(n^4) ,到 20是 O(2^n) 。力扣一般不耍花招,按这个思考相关的算法没有什么问题。
  3. 测试用例来说,力扣给出的都是一般情况,它不会给出特殊情况,所以要保证代码可行,边界条件还是得自己想。
  4. 另附一些 python 的 tips ,heapq 库是 python 自带的最小堆实现, bisect是 python 自带的二分查找,collections.deque是python的deque,collections.Counter是 python 的计数器,可以直接输入 iterable 它帮你计数。这些库在力扣都是不用明 import ,力扣会自己帮你 import ,少打几个字就快几秒啊。另外力扣最喜欢的是 DSU ,所以自备一个实现的代码能大大提速。另外一些常见的数据结构如前缀树,BIT,线段树之类的备着总是能有用的。

e6ad394c0c8bf289726324667dd8e2c3.png

07a1aea300f4473f6ab95e29c56e59b7.png

我印象最深的一场比赛是第 119 场周赛,这场比赛里有一题需要对下标数组按照对应的元素值进行排序。放在从前,只需要写一个 Compare 函数声明排序规则,再调用 C++ 算法库里的 Sort 函数进行排序就可以了。但是在类内补全函数的赛制下,出现了有关函数静态的问题,直到最后也没有解决,导致 Rating 大跳水。赛后从别人的代码里学到了 Lambda 表达式的写法,感觉收获了很多~

我觉得打力扣周赛,最重要的就是认真测试代码,避免罚时。如果顺利的话,一次比赛四道题目平均 30 分钟左右就能做完,而一次罚时就要给总时间增加 5 分钟,这相当于多做了一道 Easy / Medium 难度的题目。而写完代码之后,先肉眼 Debug 一遍,然后在造几个 Test Case 对程序的正确性进行测试,最多消耗两到三分钟,就能大大减少程序出错的概率。

最后祝大家,周周 AK,Rating 暴涨!

e6ad394c0c8bf289726324667dd8e2c3.png

76d123bc84049df5b0ba3e715dfb7b6b.png

当得知被邀请写力扣周赛的参赛获胜经验, 我是有点惊讶的。毕竟我感觉我现在还不够强, 当然我有一颗变强的心 QAQ 。我简单看了一下我大概打了二十多场力扣周赛, 基本能稳定中国区前 10 左右, 偶尔状态运气爆发, 能苟到前三。感觉打力扣周赛已经成为我生活的一部分了, 每周日睡一个懒觉到 9 点, 吃吃早餐看看番, 就准备打力扣周赛了, 生活还是挺美好的。

力扣周赛题目如何呢? 如果有 ACM 经历的话, 会发现力扣的题面非常友好, 清晰易懂, 很有助于切题。力扣周赛前两题较简单, 一般是简单的数组问题和字符串处理问题。第三题稍微有点难度, 要采取特定的算法如 DFS , 动态规划才能解决。第四题为压轴题, 通常为 Hard 题, 题型多变, 但还是有迹可循, 细细分析问题, 一般都能找到突破口, 有可能需要复杂算法和数据结构, 但大部分情况下, 如果找到问题的本质, 往往能以比较优美的方式解决。

最后, 打了这么多场周赛最重要的经验就是, 如果比较注重排名的话, 罚时很关键, 据我观察, 我排名比较后的原因基本上都是 WA 了很多发, 多测试几组数据往往比急着提交好很多。

e6ad394c0c8bf289726324667dd8e2c3.png

看完这三位同学的比赛经验,从来没参与过周赛的小伙伴们是否有了相对明确的比赛思路呢?

在此力扣君也提醒大家几点:

1.比赛报名以后如果不参赛会被扣分,将会影响竞赛评级,从而影响全国排名的名次。

2.在比赛过程中,每提交一次错误解答,最终答题用时将增加 5 分钟,因此大家在提交答案过程中须更加谨慎,以免错误提交太多而导致答题用时过长。

还有三周 2019 力扣杯-全国高校春季编程大赛 就开始了(点击链接报名)

力扣​leetcode-cn.com

比赛开始前大家可以来力扣刷题练练手,并且参与每周日北京时间 上午 9:30 的竞赛,提前熟悉比赛规则~

本文作者:力扣

采访用户:chensuim、喂你脚下有坑、ryanwang

声明:本文归 “力扣” 版权所有,如需转载请联系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值