前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LeetCode第 163 场周赛】5263. Shift 2D Grid

【LeetCode第 163 场周赛】5263. Shift 2D Grid

作者头像
韩旭051
发布2019-12-03 15:21:32
3100
发布2019-12-03 15:21:32
举报
文章被收录于专栏:刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/103117667

Given a 2D grid of size n * m and an integer k. You need to shift the grid k times.

In one shift operation:

Element at grid[i][j] becomes at grid[i][j + 1]. Element at grid[i][m - 1] becomes at grid[i + 1][0]. Element at grid[n - 1][m - 1] becomes at grid[0][0]. Return the 2D grid after applying shift operation k times.

Example 1:

Input: grid = [[1,2,3],[4,5,6],[7,8,9]], k = 1 Output: [[9,1,2],[3,4,5],[6,7,8]] Example 2:

Input: grid = [[3,8,1,9],[19,7,2,5],[4,6,11,10],[12,0,21,13]], k = 4 Output: [[12,0,21,13],[3,8,1,9],[19,7,2,5],[4,6,11,10]] Example 3:

Input: grid = [[1,2,3],[4,5,6],[7,8,9]], k = 9 Output: [[1,2,3],[4,5,6],[7,8,9]]

Constraints:

1 <= grid.length <= 50 1 <= grid[i].length <= 50 -1000 <= grid[i][j] <= 1000 0 <= k <= 100

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shift-2d-grid 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

我分两两步写的,

第一步向右循环转移

第二步向下循环转移

代码语言:javascript
复制
class Solution {
public:
    vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
        int one = grid.size();
        int two = grid[0].size();
        
        int lun=k/two;
        lun=lun%one;
        k=k%two;
        vector<vector<int>>v;
        for(int i=0;i<one;i++){
            vector<int> vv(two);
            v.push_back(vv);
        }
        for(int i=0;i<one;i++){
            for(int j=0;j<two;j++){
                v[i][(j+k)%two]=grid[i][j];
            }
        }
        vector<vector<int>>v2;
        for(int i=0;i<one;i++){
            vector<int> vv2(two);
            v2.push_back(vv2);
        }
        for(int i=0;i<one;i++){
            for(int j=0;j<two;j++){
                if(j<k){
                    v2[(i+lun+1)%one][j]=v[i][j];
                }
                else{
                    v2[(i+lun)%one][j]=v[i][j];
                }
            }
        }
        return v2;
        
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我分两两步写的,
  • 第一步向右循环转移
  • 第二步向下循环转移
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档