二维偏序
二维偏序
给你两个长度为 n
、下标从 0 开始的整数数组 nums1
和 nums2
,另给你一个下标从 1 开始的二维数组 queries
,其中 queries[i] = [xi, yi]
。
对于第 i
个查询,在所有满足 nums1[j] >= xi
且 nums2[j] >= yi
的下标 j
(0 <= j < n)
中,找出 nums1[j] + nums2[j]
的 最大值 ,如果不存在满足条件的 j
则返回 -1 。
返回数组 answer
*,*其中 answer[i]
是第 i
个查询的答案。
示例 1:
1 |
|
示例 2:
1 |
|
示例 3:
1 |
|
提示:
nums1.length == nums2.length
n == nums1.length
1 <= n <= 105
1 <= nums1[i], nums2[i] <= 109
1 <= queries.length <= 105
queries[i].length == 2
xi == queries[i][1]
yi == queries[i][2]
1 <= xi, yi <= 109
二位偏序问题。
-
什么是偏序?
形式上,偏序关系满足以下性质:
- 自反性(Reflexivity):对于任意元素x,都有x ≤ x。
- 反对称性(Antisymmetry):对于任意元素x和y,如果x ≤ y且y ≤ x,则x = y。
- 传递性(Transitivity):对于任意元素x、y和z,如果x ≤ y且y ≤ z,则x ≤ z。
-
什么是二维偏序问题?
二维偏序问题(Two-dimensional Partial Order Problem)是指在一个包含两个维度的数据集中,寻找一种线性排序方法来满足特定的约束条件。这种问题是组合优化和离散数学领域的一个经典问题。
在二维偏序问题中,我们通常需要找到一个排列
P
来对数据集进行排序,使得每个元素(x, y)
满足以下关系:1
(x1, y1) <= (x2, y2) if x1 < x2 or (x1 == x2 and y1 <= y2)
换句话说,如果一个元素的横坐标值较小或者纵坐标值也小于等于另一个元素的对应坐标时,那么这个元素必须在前面。
对于常规的二维偏序问题的解法为: 先排序一维
,再树状数组维护第二维。
1 |
|
二维偏序
http://example.com/2023/11/17/二维偏序/