@@ -29,56 +29,58 @@ For the point (1,1): floor(8/9) = floor(0.88888889) = 0
29
29
30
30
*/
31
31
public class _661 {
32
- public int [][] imageSmoother (int [][] M ) {
33
- if (M == null || M .length == 0 ) {
34
- return M ;
35
- }
36
- int m = M .length ;
37
- int n = M [0 ].length ;
38
- int [][] result = new int [m ][n ];
39
- for (int i = 0 ; i < m ; i ++) {
40
- for (int j = 0 ; j < n ; j ++) {
41
- bfs (M , i , j , result , m , n );
32
+ public static class Solution1 {
33
+ public int [][] imageSmoother (int [][] M ) {
34
+ if (M == null || M .length == 0 ) {
35
+ return M ;
36
+ }
37
+ int m = M .length ;
38
+ int n = M [0 ].length ;
39
+ int [][] result = new int [m ][n ];
40
+ for (int i = 0 ; i < m ; i ++) {
41
+ for (int j = 0 ; j < n ; j ++) {
42
+ bfs (M , i , j , result , m , n );
43
+ }
42
44
}
45
+ return result ;
43
46
}
44
- return result ;
45
- }
46
47
47
- private void bfs (int [][] M , int i , int j , int [][] result , int m , int n ) {
48
- int sum = M [i ][j ];
49
- int denominator = 1 ;
50
- if (j + 1 < n ) {
51
- sum += M [i ][j + 1 ];
52
- denominator ++;
53
- }
54
- if (i + 1 < m && j + 1 < n ) {
55
- sum += M [i + 1 ][j + 1 ];
56
- denominator ++;
57
- }
58
- if (i + 1 < m ) {
59
- sum += M [i + 1 ][j ];
60
- denominator ++;
61
- }
62
- if (i + 1 < m && j - 1 >= 0 ) {
63
- sum += M [i + 1 ][j - 1 ];
64
- denominator ++;
65
- }
66
- if (j - 1 >= 0 ) {
67
- sum += M [i ][j - 1 ];
68
- denominator ++;
69
- }
70
- if (i - 1 >= 0 && j - 1 >= 0 ) {
71
- sum += M [i - 1 ][j - 1 ];
72
- denominator ++;
73
- }
74
- if (i - 1 >= 0 ) {
75
- sum += M [i - 1 ][j ];
76
- denominator ++;
77
- }
78
- if (i - 1 >= 0 && j + 1 < n ) {
79
- sum += M [i - 1 ][j + 1 ];
80
- denominator ++;
48
+ private void bfs (int [][] M , int i , int j , int [][] result , int m , int n ) {
49
+ int sum = M [i ][j ];
50
+ int denominator = 1 ;
51
+ if (j + 1 < n ) {
52
+ sum += M [i ][j + 1 ];
53
+ denominator ++;
54
+ }
55
+ if (i + 1 < m && j + 1 < n ) {
56
+ sum += M [i + 1 ][j + 1 ];
57
+ denominator ++;
58
+ }
59
+ if (i + 1 < m ) {
60
+ sum += M [i + 1 ][j ];
61
+ denominator ++;
62
+ }
63
+ if (i + 1 < m && j - 1 >= 0 ) {
64
+ sum += M [i + 1 ][j - 1 ];
65
+ denominator ++;
66
+ }
67
+ if (j - 1 >= 0 ) {
68
+ sum += M [i ][j - 1 ];
69
+ denominator ++;
70
+ }
71
+ if (i - 1 >= 0 && j - 1 >= 0 ) {
72
+ sum += M [i - 1 ][j - 1 ];
73
+ denominator ++;
74
+ }
75
+ if (i - 1 >= 0 ) {
76
+ sum += M [i - 1 ][j ];
77
+ denominator ++;
78
+ }
79
+ if (i - 1 >= 0 && j + 1 < n ) {
80
+ sum += M [i - 1 ][j + 1 ];
81
+ denominator ++;
82
+ }
83
+ result [i ][j ] = sum / denominator ;
81
84
}
82
- result [i ][j ] = sum / denominator ;
83
85
}
84
86
}
0 commit comments