Skip to content

Commit ce93742

Browse files
committed
feat: add solutions to lc problem: No.1260
No.1260.Shift 2D Grid
1 parent 54f6eb7 commit ce93742

File tree

6 files changed

+201
-2
lines changed

6 files changed

+201
-2
lines changed

solution/1200-1299/1260.Shift 2D Grid/README.md

+70-1
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,84 @@
6969
<!-- 这里可写当前语言的特殊实现逻辑 -->
7070

7171
```python
72-
72+
class Solution:
73+
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
74+
m, n = len(grid), len(grid[0])
75+
k %= (m * n)
76+
t = [grid[i][j] for i in range(m) for j in range(n)]
77+
t = t[-k:] + t[:-k]
78+
for i in range(m):
79+
for j in range(n):
80+
grid[i][j] = t[i * n + j]
81+
return grid
7382
```
7483

7584
### **Java**
7685

7786
<!-- 这里可写当前语言的特殊实现逻辑 -->
7887

7988
```java
89+
class Solution {
90+
public List<List<Integer>> shiftGrid(int[][] grid, int k) {
91+
int m = grid.length, n = grid[0].length;
92+
k %= (m * n);
93+
List<List<Integer>> ans = new ArrayList<>();
94+
for (int i = 0; i < m; ++i) {
95+
List<Integer> t = new ArrayList<>();
96+
for (int j = 0; j < n; ++j) {
97+
t.add(0);
98+
}
99+
ans.add(t);
100+
}
101+
for (int i = 0; i < m; ++i) {
102+
for (int j = 0; j < n; ++j) {
103+
int t = (i * n + j + k) % (m * n);
104+
ans.get(t / n).set(t % n, grid[i][j]);
105+
}
106+
}
107+
return ans;
108+
}
109+
}
110+
```
111+
112+
### **C++**
113+
114+
```cpp
115+
class Solution {
116+
public:
117+
vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
118+
int m = grid.size(), n = grid[0].size();
119+
vector<vector<int>> ans(m, vector<int>(n));
120+
for (int i = 0; i < m; ++i)
121+
{
122+
for (int j = 0; j < n; ++j)
123+
{
124+
int t = (i * n + j + k) % (m * n);
125+
ans[t / n][t % n] = grid[i][j];
126+
}
127+
}
128+
return ans;
129+
}
130+
};
131+
```
80132
133+
### **Go**
134+
135+
```go
136+
func shiftGrid(grid [][]int, k int) [][]int {
137+
m, n := len(grid), len(grid[0])
138+
ans := make([][]int, m)
139+
for i := range ans {
140+
ans[i] = make([]int, n)
141+
}
142+
for i := 0; i < m; i++ {
143+
for j := 0; j < n; j++ {
144+
t := (i*n + j + k) % (m * n)
145+
ans[t/n][t%n] = grid[i][j]
146+
}
147+
}
148+
return ans
149+
}
81150
```
82151

83152
### **...**

solution/1200-1299/1260.Shift 2D Grid/README_EN.md

+70-1
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,82 @@
5757
### **Python3**
5858

5959
```python
60-
60+
class Solution:
61+
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
62+
m, n = len(grid), len(grid[0])
63+
k %= (m * n)
64+
t = [grid[i][j] for i in range(m) for j in range(n)]
65+
t = t[-k:] + t[:-k]
66+
for i in range(m):
67+
for j in range(n):
68+
grid[i][j] = t[i * n + j]
69+
return grid
6170
```
6271

6372
### **Java**
6473

6574
```java
75+
class Solution {
76+
public List<List<Integer>> shiftGrid(int[][] grid, int k) {
77+
int m = grid.length, n = grid[0].length;
78+
k %= (m * n);
79+
List<List<Integer>> ans = new ArrayList<>();
80+
for (int i = 0; i < m; ++i) {
81+
List<Integer> t = new ArrayList<>();
82+
for (int j = 0; j < n; ++j) {
83+
t.add(0);
84+
}
85+
ans.add(t);
86+
}
87+
for (int i = 0; i < m; ++i) {
88+
for (int j = 0; j < n; ++j) {
89+
int t = (i * n + j + k) % (m * n);
90+
ans.get(t / n).set(t % n, grid[i][j]);
91+
}
92+
}
93+
return ans;
94+
}
95+
}
96+
```
97+
98+
### **C++**
99+
100+
```cpp
101+
class Solution {
102+
public:
103+
vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
104+
int m = grid.size(), n = grid[0].size();
105+
vector<vector<int>> ans(m, vector<int>(n));
106+
for (int i = 0; i < m; ++i)
107+
{
108+
for (int j = 0; j < n; ++j)
109+
{
110+
int t = (i * n + j + k) % (m * n);
111+
ans[t / n][t % n] = grid[i][j];
112+
}
113+
}
114+
return ans;
115+
}
116+
};
117+
```
66118
119+
### **Go**
120+
121+
```go
122+
func shiftGrid(grid [][]int, k int) [][]int {
123+
m, n := len(grid), len(grid[0])
124+
ans := make([][]int, m)
125+
for i := range ans {
126+
ans[i] = make([]int, n)
127+
}
128+
for i := 0; i < m; i++ {
129+
for j := 0; j < n; j++ {
130+
t := (i*n + j + k) % (m * n)
131+
ans[t/n][t%n] = grid[i][j]
132+
}
133+
}
134+
return ans
135+
}
67136
```
68137

69138
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
4+
int m = grid.size(), n = grid[0].size();
5+
vector<vector<int>> ans(m, vector<int>(n));
6+
for (int i = 0; i < m; ++i)
7+
{
8+
for (int j = 0; j < n; ++j)
9+
{
10+
int t = (i * n + j + k) % (m * n);
11+
ans[t / n][t % n] = grid[i][j];
12+
}
13+
}
14+
return ans;
15+
}
16+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func shiftGrid(grid [][]int, k int) [][]int {
2+
m, n := len(grid), len(grid[0])
3+
ans := make([][]int, m)
4+
for i := range ans {
5+
ans[i] = make([]int, n)
6+
}
7+
for i := 0; i < m; i++ {
8+
for j := 0; j < n; j++ {
9+
t := (i*n + j + k) % (m * n)
10+
ans[t/n][t%n] = grid[i][j]
11+
}
12+
}
13+
return ans
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
public List<List<Integer>> shiftGrid(int[][] grid, int k) {
3+
int m = grid.length, n = grid[0].length;
4+
k %= (m * n);
5+
List<List<Integer>> ans = new ArrayList<>();
6+
for (int i = 0; i < m; ++i) {
7+
List<Integer> t = new ArrayList<>();
8+
for (int j = 0; j < n; ++j) {
9+
t.add(0);
10+
}
11+
ans.add(t);
12+
}
13+
for (int i = 0; i < m; ++i) {
14+
for (int j = 0; j < n; ++j) {
15+
int t = (i * n + j + k) % (m * n);
16+
ans.get(t / n).set(t % n, grid[i][j]);
17+
}
18+
}
19+
return ans;
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
3+
m, n = len(grid), len(grid[0])
4+
k %= (m * n)
5+
t = [grid[i][j] for i in range(m) for j in range(n)]
6+
t = t[-k:] + t[:-k]
7+
for i in range(m):
8+
for j in range(n):
9+
grid[i][j] = t[i * n + j]
10+
return grid

0 commit comments

Comments
 (0)