Leetcode 3027. Find the Number of Ways to Place People II

1. 解题思路

这一题的话我也没想到啥特别好的思路,采用的纯粹是遍历+剪枝的思路。

遍历的话好理解,对于 N N N个位置当中要找到任意两个位置作为Takina和Chisato的位置,一共就是 O ( N 2 ) O(N^2) O(N2)的算法复杂度,然后就是要判断这两个位置是否合法,这个至多又会引入 O ( N ) O(N) O(N)的算法复杂度,一共可能就变成了 O ( N 3 ) O(N^3) O(N3)的算法复杂度,明显太多了……

因此,我们就是在这里做了一下剪枝,首先的话,就是我们将坐标拍了个序,按照题意要求,两个点一个要在左上角,一个要在右下角,因此,我们将坐标按照 ( x , − y ) (x, -y) (x,y)进行逆序排列,此时必然左上角的点会出现右下角的点的前方,且如果他们的区间当中有其他点的话,这个点只能出现在他们之间。

此时,我们发现提交的代码就能够通过所有测试样例了,感觉应该还能够优化,不过这里暂时就没往下深挖了,凑合着就算是做出来了吧,LOL

2. 代码实现

给出python代码实现如下:

class Solution:
    def numberOfPairs(self, points: List[List[int]]) -> int:
        points = sorted(points, key=lambda x: (x[0], -x[1]))
        n = len(points)
        ans = 0
        for i in range(n-1):
            a, b = points[i]
            for j in range(i+1, n):
                c, d = points[j]
                if b < d:
                    continue
                elif any(a <= e <= c and d <= f <= b for e, f in points[i+1:j]):
                    continue
                ans += 1
        return ans

提交代码评测得到:耗时6105ms,占用内存17MB。

相关推荐

  1. Leetcode 3026. Maximum Good Subarray Sum

    2024-02-05 07:06:05       63 阅读
  2. Leetcode 3027. Find the Number of Ways to Place People II

    2024-02-05 07:06:05       56 阅读
  3. Leetcode 3021. Alice and Bob Playing Flower Game

    2024-02-05 07:06:05       63 阅读
  4. Leetcode 3097. Shortest Subarray With OR at Least K II

    2024-02-05 07:06:05       41 阅读
  5. LeetCode-day03-3072. 将元素分配到两个数组中 II

    2024-02-05 07:06:05       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 07:06:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 07:06:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 07:06:05       87 阅读
  4. Python语言-面向对象

    2024-02-05 07:06:05       96 阅读

热门阅读

  1. vue2混入声明组件、交互流程

    2024-02-05 07:06:05       48 阅读
  2. vue学习——集成sass

    2024-02-05 07:06:05       57 阅读
  3. C++ Primer 第 5 版 第 5 章习题答案

    2024-02-05 07:06:05       36 阅读
  4. 网易和腾讯面试题精选---缓存面试问题和答案

    2024-02-05 07:06:05       46 阅读
  5. vue-element-admin npm install 失败解决

    2024-02-05 07:06:05       47 阅读
  6. Github使用教程

    2024-02-05 07:06:05       57 阅读
  7. 开源计算机视觉库OpenCV详细介绍

    2024-02-05 07:06:05       48 阅读
  8. CSS两侧固定,中间自适应

    2024-02-05 07:06:05       45 阅读