Skip to content

Commit 0baa195

Browse files
committed
feat: add typescript solution to lc problem: No.1260
No.1260.Shift 2D Grid
1 parent f4ddd5d commit 0baa195

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

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

+19
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,25 @@ class Solution {
109109
}
110110
```
111111

112+
### **TypeScript**
113+
114+
```ts
115+
function shiftGrid(grid: number[][], k: number): number[][] {
116+
const m = grid.length, n = grid[0].length;
117+
const size = m * n;
118+
k = k % size;
119+
if (k == 0 || size <= 1) return grid;
120+
let arr = grid.flat();
121+
if (size <= 1) return grid;
122+
let ans = Array.from({ length: m }, v => new Array(n));
123+
for (let i = 0, j = size - k; i < size; i++) {
124+
ans[Math.floor(i / n)][i % n] = arr[j];
125+
j = j == size - 1 ? 0 : j + 1;
126+
}
127+
return ans;
128+
};
129+
```
130+
112131
### **C++**
113132

114133
```cpp

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

+19
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,25 @@ class Solution {
9595
}
9696
```
9797

98+
### **TypeScript**
99+
100+
```ts
101+
function shiftGrid(grid: number[][], k: number): number[][] {
102+
const m = grid.length, n = grid[0].length;
103+
const size = m * n;
104+
k = k % size;
105+
if (k == 0 || size <= 1) return grid;
106+
let arr = grid.flat();
107+
if (size <= 1) return grid;
108+
let ans = Array.from({ length: m }, v => new Array(n));
109+
for (let i = 0, j = size - k; i < size; i++) {
110+
ans[Math.floor(i / n)][i % n] = arr[j];
111+
j = j == size - 1 ? 0 : j + 1;
112+
}
113+
return ans;
114+
};
115+
```
116+
98117
### **C++**
99118

100119
```cpp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function shiftGrid(grid: number[][], k: number): number[][] {
2+
const m = grid.length, n = grid[0].length;
3+
const size = m * n;
4+
k = k % size;
5+
if (k == 0 || size <= 1) return grid;
6+
let arr = grid.flat();
7+
if (size <= 1) return grid;
8+
let ans = Array.from({ length: m }, v => new Array(n));
9+
for (let i = 0, j = size - k; i < size; i++) {
10+
ans[Math.floor(i / n)][i % n] = arr[j];
11+
j = j == size - 1 ? 0 : j + 1;
12+
}
13+
return ans;
14+
};

0 commit comments

Comments
 (0)