vlambda博客
学习文章列表

10.刷到 LeetCode 这个评论,被笑到了!(二)

多写、多练、多思考,持续输出第 10/20 天|执行|专注|坚持

大家好,我是吴师兄。

今天继续给大家分享一个 LeetCode 评论区的骚操作,直接看截图!

这个骚操作的评论来源于 LeetCode 上剑指 Offer 51. 数组中的逆序对。

首先给没有见过这道题目的小伙伴补充一下前置知识, 这道题目讲的是,在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。

输入一个数组,求出这个数组中的逆序对的总数。

那比如给定一个数组 [ 7 , 5 , 6 ,4 ],在这个数组中 7 比 5 更大,同时在 5 的前面,那么 【 7 , 5 】就构成了一个逆序对,而在整个数组中,总共操作 5 组逆序对。

  • 【 7 , 5 】
  • 【 7 , 6 】
  • 【 7 , 4 】
  • 【 5 , 4 】
  • 【 6 , 4 】

理解题目意思之后,最直观的解法就是使用暴力统计法,即遍历数组的所有数字对并统计逆序对数量。

暴力解法的时间复杂度为 O(N^2),由于题目给出的数组长度可以高达 50000,因此使用这种暴力解法是行不通的。

实际上,这道题目考察的还是我们基础知识的掌握程度。

具体的解法我在之前的文章中详细说明了,可以点击下方蓝字查看。


这篇文章主要来看看这个骚操作代码。

res=iter([504500100310006692389522459442395282380712438632453572324772481742399692363022438782361182464322441592359942455492386832427372293172513156248755726249126806236746136243685830124997500000000000000010100021222132104551040403789832135755799873551614511891213477716149617951623171322101716172318242118242730181724625017023])
class Solution:
    def reversePairs(self, nums: List[int]) -> int:
        return next(res)

二话不说,先提交看看。

10.刷到 LeetCode 这个评论,被笑到了!(二)

虽然没有双百,但也是很靠前的,关键是,这个代码咋就通过了呢?

答案和上一篇的思路一样,面向测试用例编程。

虽然不知道他是怎么样弄出这些测试用例来,但看他的评论时间是 2020 年 4 月 24 号,已经快过去两年,这代码依旧跑的通,说明现在 LeetCode 还是没有更新测试用例。

这里并非鼓励大家在刷题是投机取巧,只不过想分享这种骚操作出来,在苦闷的刷题的间隙博君一笑。

然后在这里给自己打个广告,目前我的算法训练营第五期月底开班,现在只剩下 28 个名额,有需要的同学可以点击下方链接了解详情。


《》



都看到这里了,不关注一下嘛 👇👇👇

 吴师兄学算法 
关注我 让你的程序员旅途可以走的更远一些
⭐️