leetcode-1260:二维网格迁移

简介: leetcode-1260:二维网格迁移

题目

题目连接

给你一个 m 行 n 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。

每次「迁移」操作将会引发下述活动:

  • 位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。
  • 位于 grid[i][n - 1] 的元素将会移动到 grid[i + 1][0]。
  • 位于 grid[m - 1][n - 1] 的元素将会移动到 grid[0][0]。

请你返回 k 次迁移操作后最终得到的 二维网格。

示例 1:

输入:grid = [[1,2,3],[4,5,6],[7,8,9]], k = 1
输出:[[9,1,2],[3,4,5],[6,7,8]]

示例 2:

输入:grid = [[3,8,1,9],[19,7,2,5],[4,6,11,10],[12,0,21,13]], k = 4
输出:[[12,0,21,13],[3,8,1,9],[19,7,2,5],[4,6,11,10]]

示例 3:

输入:grid = [[1,2,3],[4,5,6],[7,8,9]], k = 9
输出:[[1,2,3],[4,5,6],[7,8,9]]

解题

方法一:数学

class Solution {
public:
    vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
        int m=grid.size();
        int n=grid[0].size();
        vector<vector<int>> res(m,vector<int>(n));
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                int ni=(i+(j+k)/n)%m;
                int nj=(j+k)%n;
                res[ni][nj]=grid[i][j];
            }
        }
        return res;
    }
};
相关文章
|
10天前
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
|
3月前
|
图形学 计算机视觉
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
33 0
|
4月前
|
JavaScript SoC
leetcode-304:二维区域和检索 - 矩阵不可变
leetcode-304:二维区域和检索 - 矩阵不可变
29 0
|
5月前
[Halcon&几何] 线段中点、端点和角度的计算
[Halcon&几何] 线段中点、端点和角度的计算
65 0
|
10月前
|
索引
ArcGIS:如何理解成本回溯链接栅格/方向矩阵/backlink raster?
ArcGIS:如何理解成本回溯链接栅格/方向矩阵/backlink raster?
132 0
|
12月前
|
架构师 数据管理 数据挖掘
【数据网格】数据网格 101:入门所需的一切
【数据网格】数据网格 101:入门所需的一切
|
12月前
|
存储 安全 BI
【数据网格】应用数据网格(下)
【数据网格】应用数据网格
|
12月前
|
JSON 搜索推荐 安全
【数据网格】应用数据网格(上)
【数据网格】应用数据网格
|
12月前
|
存储 监控 架构师
【数据网格架构】什么是数据网格——以及如何不将其网格化
【数据网格架构】什么是数据网格——以及如何不将其网格化
【数据网格架构】什么是数据网格——以及如何不将其网格化
|
算法 索引
基于二维切片图序列的三维立体建模MATLAB仿真
基于二维切片图序列的三维立体建模MATLAB仿真
259 0
基于二维切片图序列的三维立体建模MATLAB仿真