Skip to content

Commit 466607e

Browse files
refactor 315
1 parent b14df48 commit 466607e

File tree

1 file changed

+33
-32
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+33
-32
lines changed

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

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,43 +22,44 @@
2222
*/
2323
public class _315 {
2424

25-
class Node {
26-
int val;
27-
int sum;
28-
int dup = 1;
29-
Node left;
30-
Node right;
25+
public static class Solution1 {
26+
class Node {
27+
int val;
28+
int sum;
29+
int dup = 1;
30+
Node left;
31+
Node right;
3132

32-
public Node(int v, int s) {
33-
this.val = v;
34-
this.sum = s;
33+
public Node(int v, int s) {
34+
this.val = v;
35+
this.sum = s;
36+
}
3537
}
36-
}
3738

38-
public List<Integer> countSmaller(int[] nums) {
39-
Integer[] ans = new Integer[nums.length];
40-
Node root = null;
41-
for (int i = nums.length - 1; i >= 0; i--) {
42-
root = insertNode(nums[i], root, i, 0, ans);
39+
public List<Integer> countSmaller(int[] nums) {
40+
Integer[] ans = new Integer[nums.length];
41+
Node root = null;
42+
for (int i = nums.length - 1; i >= 0; i--) {
43+
root = insertNode(nums[i], root, i, 0, ans);
44+
}
45+
return Arrays.asList(ans);
4346
}
44-
return Arrays.asList(ans);
45-
}
4647

47-
Node insertNode(int val, Node node, int i, int prevSum, Integer[] ans) {
48-
if (node == null) {
49-
node = new Node(val, 0);
50-
ans[i] = prevSum;
51-
} else if (val == node.val) {
52-
node.dup += 1;
53-
ans[i] = prevSum + node.sum;
54-
} else if (val > node.val) {
55-
node.right = insertNode(val, node.right, i, prevSum + node.sum + node.dup, ans);
56-
} else {
57-
node.sum += 1;
58-
node.left = insertNode(val, node.left, i, prevSum, ans);
59-
}
48+
Node insertNode(int val, Node node, int i, int prevSum, Integer[] ans) {
49+
if (node == null) {
50+
node = new Node(val, 0);
51+
ans[i] = prevSum;
52+
} else if (val == node.val) {
53+
node.dup += 1;
54+
ans[i] = prevSum + node.sum;
55+
} else if (val > node.val) {
56+
node.right = insertNode(val, node.right, i, prevSum + node.sum + node.dup, ans);
57+
} else {
58+
node.sum += 1;
59+
node.left = insertNode(val, node.left, i, prevSum, ans);
60+
}
6061

61-
return node;
62+
return node;
63+
}
6264
}
63-
6465
}

0 commit comments

Comments
 (0)