题目描述:

自己的提交:

class Solution:
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
m,n = len(grid),len(grid[0])
while k:
tmp = [[0] * n for _ in range(m)]
for i in range(m):
for j in range(n):
if j == 0 and i == 0:
tmp[i][j] = grid[m-1][n-1]
elif j == 0:
tmp[i][j] = grid[i-1][n-1]
else:
tmp[i][j] = grid[i][j-1]
grid = tmp
k -= 1
return grid

优化:

class Solution:
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
n, m = len(grid), len(grid[0])
ans = [[0]*m for _ in range(n)]
for i in range(n):
for j in range(m):
p = (i * m + j + k) % (m*n)
ans[p//m][p%m] = grid[i][j]
return ans

方法二:

class Solution(object):
def shiftGrid(self, A, k):
vals = []
for r, row in enumerate(A):
for c, val in enumerate(row):
vals.append(val) N = len(A) * len(A[0])
k %= N
if k:
vals = vals[-k:] + vals[:-k]
else:
return A
vals = collections.deque(vals)
for r, row in enumerate(A):
for c, v in enumerate(row):
A[r][c] = vals.popleft() return A

最新文章

  1. IP数据报首部解析
  2. sublime使用小技巧——自动保存后缀名与自动匹配语法
  3. Android活动启动模式
  4. BZOJ1315 : Ural1557Network Attack
  5. Linux高级编程--05.文件读写
  6. 关于PHP 7你必须知道的五件事
  7. c#导出Excel 使用EXCEL进程
  8. 编程小计——消除Graphics图像边缘颜色不纯(抗锯齿)
  9. geotools导入shp文件到Oracle数据库时表名带下划线的问题解决
  10. [置顶] oracle存储过程中单引号及字符串拼接处理
  11. scrapy_图片下载
  12. UE4网络同步属性笔记
  13. Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
  14. python 多线程小练习
  15. C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
  16. java----代理机制或动态类的生成
  17. 安卓 内存泄漏 MemoryAnalyzer
  18. computed属性与methods、watched
  19. 【AWS】亚马逊云常用服务解释
  20. 是男人就下100层【第四层】——Crazy贪吃蛇(2)

热门文章

  1. zabbix监控nginx status页面
  2. Update Vim to 8.0 in Ubuntu
  3. JindoFS解析 - 云上大数据高性能数据湖存储方案
  4. 理解webpack中的process.env.NODE_ENV
  5. 使用Github SSH Key来避免Hexo部署时输入账户密码
  6. 8. Jmeter导入jar包
  7. jwt token校验获取用户数据
  8. Node.js、vue.js的使用
  9. 神器,阿里巴巴Java代码检查插件
  10. leetcode.数组.667优美的排列II-Java