File tree Expand file tree Collapse file tree 4 files changed +176
-0
lines changed
solution/2900-2999/2906.Construct Product Matrix Expand file tree Collapse file tree 4 files changed +176
-0
lines changed Original file line number Diff line number Diff line change @@ -243,6 +243,68 @@ impl Solution {
243243}
244244```
245245
246+ #### JavaScript
247+
248+ ``` js
249+ /**
250+ * @param {number[][]} grid
251+ * @return {number[][]}
252+ */
253+ var constructProductMatrix = function (grid ) {
254+ const mod = 12345 ;
255+ const [n , m ] = [grid .length , grid[0 ].length ];
256+ const p = Array .from ({ length: n }, () => Array .from ({ length: m }, () => 0 ));
257+ let suf = 1 ;
258+ for (let i = n - 1 ; ~ i; -- i) {
259+ for (let j = m - 1 ; ~ j; -- j) {
260+ p[i][j] = suf;
261+ suf = (suf * grid[i][j]) % mod;
262+ }
263+ }
264+ let pre = 1 ;
265+ for (let i = 0 ; i < n; ++ i) {
266+ for (let j = 0 ; j < m; ++ j) {
267+ p[i][j] = (p[i][j] * pre) % mod;
268+ pre = (pre * grid[i][j]) % mod;
269+ }
270+ }
271+ return p;
272+ };
273+ ```
274+
275+ #### C#
276+
277+ ``` cs
278+ public class Solution {
279+ public int [][] ConstructProductMatrix (int [][] grid ) {
280+ const int mod = 12345 ;
281+ int n = grid .Length , m = grid [0 ].Length ;
282+ int [][] p = new int [n ][];
283+ for (int i = 0 ; i < n ; ++ i ) {
284+ p [i ] = new int [m ];
285+ }
286+
287+ long suf = 1 ;
288+ for (int i = n - 1 ; i >= 0 ; -- i ) {
289+ for (int j = m - 1 ; j >= 0 ; -- j ) {
290+ p [i ][j ] = (int )suf ;
291+ suf = suf * grid [i ][j ] % mod ;
292+ }
293+ }
294+
295+ long pre = 1 ;
296+ for (int i = 0 ; i < n ; ++ i ) {
297+ for (int j = 0 ; j < m ; ++ j ) {
298+ p [i ][j ] = (int )(p [i ][j ] * pre % mod );
299+ pre = pre * grid [i ][j ] % mod ;
300+ }
301+ }
302+
303+ return p ;
304+ }
305+ }
306+ ```
307+
246308<!-- tabs: end -->
247309
248310<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -241,6 +241,68 @@ impl Solution {
241241}
242242```
243243
244+ #### JavaScript
245+
246+ ``` js
247+ /**
248+ * @param {number[][]} grid
249+ * @return {number[][]}
250+ */
251+ var constructProductMatrix = function (grid ) {
252+ const mod = 12345 ;
253+ const [n , m ] = [grid .length , grid[0 ].length ];
254+ const p = Array .from ({ length: n }, () => Array .from ({ length: m }, () => 0 ));
255+ let suf = 1 ;
256+ for (let i = n - 1 ; ~ i; -- i) {
257+ for (let j = m - 1 ; ~ j; -- j) {
258+ p[i][j] = suf;
259+ suf = (suf * grid[i][j]) % mod;
260+ }
261+ }
262+ let pre = 1 ;
263+ for (let i = 0 ; i < n; ++ i) {
264+ for (let j = 0 ; j < m; ++ j) {
265+ p[i][j] = (p[i][j] * pre) % mod;
266+ pre = (pre * grid[i][j]) % mod;
267+ }
268+ }
269+ return p;
270+ };
271+ ```
272+
273+ #### C#
274+
275+ ``` cs
276+ public class Solution {
277+ public int [][] ConstructProductMatrix (int [][] grid ) {
278+ const int mod = 12345 ;
279+ int n = grid .Length , m = grid [0 ].Length ;
280+ int [][] p = new int [n ][];
281+ for (int i = 0 ; i < n ; ++ i ) {
282+ p [i ] = new int [m ];
283+ }
284+
285+ long suf = 1 ;
286+ for (int i = n - 1 ; i >= 0 ; -- i ) {
287+ for (int j = m - 1 ; j >= 0 ; -- j ) {
288+ p [i ][j ] = (int )suf ;
289+ suf = suf * grid [i ][j ] % mod ;
290+ }
291+ }
292+
293+ long pre = 1 ;
294+ for (int i = 0 ; i < n ; ++ i ) {
295+ for (int j = 0 ; j < m ; ++ j ) {
296+ p [i ][j ] = (int )(p [i ][j ] * pre % mod );
297+ pre = pre * grid [i ][j ] % mod ;
298+ }
299+ }
300+
301+ return p ;
302+ }
303+ }
304+ ```
305+
244306<!-- tabs: end -->
245307
246308<!-- solution: end -->
Original file line number Diff line number Diff line change 1+ public class Solution {
2+ public int [ ] [ ] ConstructProductMatrix ( int [ ] [ ] grid ) {
3+ const int mod = 12345 ;
4+ int n = grid . Length , m = grid [ 0 ] . Length ;
5+ int [ ] [ ] p = new int [ n ] [ ] ;
6+ for ( int i = 0 ; i < n ; ++ i ) {
7+ p [ i ] = new int [ m ] ;
8+ }
9+
10+ long suf = 1 ;
11+ for ( int i = n - 1 ; i >= 0 ; -- i ) {
12+ for ( int j = m - 1 ; j >= 0 ; -- j ) {
13+ p [ i ] [ j ] = ( int ) suf ;
14+ suf = suf * grid [ i ] [ j ] % mod ;
15+ }
16+ }
17+
18+ long pre = 1 ;
19+ for ( int i = 0 ; i < n ; ++ i ) {
20+ for ( int j = 0 ; j < m ; ++ j ) {
21+ p [ i ] [ j ] = ( int ) ( p [ i ] [ j ] * pre % mod ) ;
22+ pre = pre * grid [ i ] [ j ] % mod ;
23+ }
24+ }
25+
26+ return p ;
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[][] } grid
3+ * @return {number[][] }
4+ */
5+ var constructProductMatrix = function ( grid ) {
6+ const mod = 12345 ;
7+ const [ n , m ] = [ grid . length , grid [ 0 ] . length ] ;
8+ const p = Array . from ( { length : n } , ( ) => Array . from ( { length : m } , ( ) => 0 ) ) ;
9+ let suf = 1 ;
10+ for ( let i = n - 1 ; ~ i ; -- i ) {
11+ for ( let j = m - 1 ; ~ j ; -- j ) {
12+ p [ i ] [ j ] = suf ;
13+ suf = ( suf * grid [ i ] [ j ] ) % mod ;
14+ }
15+ }
16+ let pre = 1 ;
17+ for ( let i = 0 ; i < n ; ++ i ) {
18+ for ( let j = 0 ; j < m ; ++ j ) {
19+ p [ i ] [ j ] = ( p [ i ] [ j ] * pre ) % mod ;
20+ pre = ( pre * grid [ i ] [ j ] ) % mod ;
21+ }
22+ }
23+ return p ;
24+ } ;
You can’t perform that action at this time.
0 commit comments