Skip to content

Commit fdcce3a

Browse files
authored
Create 2088-count-fertile-pyramids-in-a-land.js
1 parent 02a362a commit fdcce3a

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
const countPyramids = function(grid) {
6+
const rev = clone(grid)
7+
let res = count(grid)
8+
rev.reverse()
9+
res += count(rev)
10+
return res
11+
12+
function clone(grid) {
13+
let res = []
14+
for (const row of grid) {
15+
res.push(row.slice())
16+
}
17+
return res
18+
}
19+
function reverse(grid) {
20+
let l = 0, r = grid.length - 1
21+
while(l < r) {
22+
const tmp = grid[l]
23+
grid[l] = grid[r]
24+
grid[r] = tmp
25+
l++
26+
r--
27+
}
28+
}
29+
30+
function count(grid) {
31+
const m = grid.length, n = grid[0].length
32+
let res = 0
33+
34+
for (let i = 1; i < m; i++) {
35+
for (let j = 1; j < n - 1; j++) {
36+
if (grid[i][j] && grid[i - 1][j]) {
37+
grid[i][j] = Math.min(
38+
grid[i - 1][j - 1],
39+
grid[i - 1][j + 1]
40+
) + 1
41+
res += grid[i][j] - 1
42+
}
43+
}
44+
}
45+
46+
return res
47+
}
48+
};

0 commit comments

Comments
 (0)