小红有一个大小为 2 × 2 的矩阵,如果对于每一行,第一个数小于第二个数,对于每一列,第一个数小于第二个数,那么这个矩阵就是美丽的。现在小红可以对矩阵顺时针旋转,她想知道,经过若干次旋转,能否得到美丽的矩阵。 一个矩阵 [[1, 2], [3, 4]] 经过一次旋转过后,变成 [[3, 1], [4, 2]] 。
一行一个整数 t ,表示数据组数。 对于每组数据,一行四个整数 a, b, c, d ,表示矩阵为 [[a, b], [c, d]] 。 1 ≤ t ≤ 20 1 ≤ a, b, c, d ≤ 1000
对于每组数据,如果能得到美丽的矩阵,输出“Yes”,否则输出“No”。
2 1 2 3 4 3 1 4 2
Yes Yes
考点:模拟
数据规模 t ≤ 20 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
2×2 矩阵只有 4 种旋转形态,逐一检查是否满足「每行每列都递增」即可。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1:输入 2 / 1 2 3 4 / 3 1 4 2 → 输出 Yes / Yes
第一组,本身就是一个美丽矩阵
第二组,旋转 3 次,变成 [[1, 2], [3, 4]] ,是一个美丽矩阵
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-OPPO-数据开发岗笔试。