主題

LeetCode - 1260. Shift 2D Grid 解題心得

Not In My Back Yard | 2021-04-10 00:00:10 | 巴幣 0 | 人氣 58

題目連結:


題目意譯:
給定一個 2D 網格 grid,大小為 m × n,以及一個整數 k。你需要位移網格 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 次位移後的網格 grid。

限制:
m == grid.length
n == grid[i].length
1 ≦ m ≦ 50
1 ≦ n ≦ 50
-1000 ≦ grid[i][j] ≦ 1000
0 ≦ k ≦ 100



範例測資:
範例 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]]


解題思維:
基本上就是這題的二維陣列版本,因此我們可以使每一列接在上一列的尾巴地將其延展為一維,接著套用一維時的做法,最後再變回二維即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作