🗒️2392. 给定条件下构造矩阵
2025-1-9
| 2025-1-9
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Jan 9, 2025 01:54 AM
给你一个  整数 k ,同时给你:
  • 一个大小为 n 的二维整数数组 rowConditions ,其中 rowConditions[i] = [abovei, belowi] 和
  • 一个大小为 m 的二维整数数组 colConditions ,其中 colConditions[i] = [lefti, righti] 。
两个数组里的整数都是 1 到 k 之间的数字。
你需要构造一个 k x k 的矩阵,1 到 k 每个数字需要 恰好出现一次 。剩余的数字都是 0 。
矩阵还需要满足以下条件:
  • 对于所有 0 到 n - 1 之间的下标 i ,数字 abovei 所在的  必须在数字 belowi 所在行的上面。
  • 对于所有 0 到 m - 1 之间的下标 i ,数字 lefti 所在的  必须在数字 righti 所在列的左边。
返回满足上述要求的 任意 矩阵。如果不存在答案,返回一个空的矩阵。

拓扑排序

思路:行与列是独立的,因此使用两次拓扑排序,可以得到行或列的关系。
需要注意的是,我们在拓扑排序中得到的顺序关系是

📎 参考

  • 【题单】图论算法
  • 802. 找到最终的安全状态(拓扑排序)310. 最小高度树
    Loading...