File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 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+ } ;
You can’t perform that action at this time.
0 commit comments