Skip to content

Commit 23e3800

Browse files
[N-0] refactor 661
1 parent 11aa483 commit 23e3800

File tree

2 files changed

+52
-50
lines changed

2 files changed

+52
-50
lines changed

src/main/java/com/fishercoder/solutions/_661.java

Lines changed: 49 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -29,56 +29,58 @@ For the point (1,1): floor(8/9) = floor(0.88888889) = 0
2929
3030
*/
3131
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+
}
4244
}
45+
return result;
4346
}
44-
return result;
45-
}
4647

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;
8184
}
82-
result[i][j] = sum / denominator;
8385
}
8486
}

src/test/java/com/fishercoder/_661Test.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
import static org.junit.Assert.assertArrayEquals;
88

99
public class _661Test {
10-
private static _661 test;
10+
private static _661.Solution1 solution1;
1111
private static int[][] M;
1212
private static int[][] expected;
1313

1414
@BeforeClass
1515
public static void setup() {
16-
test = new _661();
16+
solution1 = new _661.Solution1();
1717
}
1818

1919
@Test
@@ -28,7 +28,7 @@ public void test1() {
2828
{0, 0, 0},
2929
{0, 0, 0}
3030
};
31-
assertArrayEquals(expected, test.imageSmoother(M));
31+
assertArrayEquals(expected, solution1.imageSmoother(M));
3232
}
3333

3434
}

0 commit comments

Comments
 (0)