这道题的正解是 树状数组,但是我们用朴素解法 二重循环统计逆序 也能在考试时拿到一定的分数。
题意:对 N×N 矩阵做顺时针螺旋遍历,得到序列 spiral。允许交换螺旋顺序上相邻的两个元素,最少次数等于把 spiral 排成 [1,2,…,N2] 的逆序对数。答案对 1000000007 取模。
朴素做法:
有一个 N×N 的方阵,其中填有 1 到 N2 的全部正整数,每个数恰好出现一次。
定义方阵的顺时针螺旋顺序如下:从左上角开始,先沿当前最上方未访问的行向右走到尽头;再沿当前最右未访问的列向下走到尽头;再沿当前最下方未访问的行向左走到尽头;再沿当前最左未访问的列向上走到尽头。之后对内部尚未访问的子方阵重复上述过程,直到所有格子都被访问一次。
一次操作可以选中顺时针螺旋顺序中相邻的两个元素,并交换它们在方阵中的位置。
规定目标方阵为“顺时针螺旋递增”方阵:按顺时针螺旋顺序读取时,得到序列 1,2,…,N2。求从给定方阵变为目标方阵所需的最少操作次数。答案需要对 1000000007 取模。
约束条件:
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册