8000 refactor 364 · Mars2018/Leetcode-3@5397824 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5397824

Browse files
refactor 364
1 parent 6b4d02b commit 5397824

File tree

1 file changed

+28
-23
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+28
-23
lines changed

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

Lines changed: 28 additions & 23 deletions
530B
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import java.util.List;
77
import java.util.Queue;
88

9-
/**Given a nested list of integers, return the sum of all integers in the list weighted by their depth.
9+
/**
10+
* 364. Nested List Weight Sum II
11+
*
12+
* Given a nested list of integers, return the sum of all integers in the list weighted by their depth.
1013
1114
Each element is either an integer, or a list -- whose elements may also be integers or other lists.
1215
@@ -19,32 +22,34 @@
1922
Given the list [1,[4,[6]]], return 17. (one 1 at depth 3, one 4 at depth 2, and one 6 at depth 1; 1*3 + 4*2 + 6*1 = 17)*/
2023
public class _364 {
2124

22-
public int depthSumInverse(List<NestedInteger> nestedList) {
23-
Queue<NestedInteger> q = new LinkedList<NestedInteger>();
24-
for (NestedInteger next : nestedList) {
25-
q.offer(next);
26-
}
27-
int prev = 0;
28-
int total = 0;
29-
30-
while (!q.isEmpty()) {
31-
int size = q.size();
32-
int levelSum = 0;
33-
for (int i = 0; i < size; i++) {
34-
NestedInteger next = q.poll();
35-
if (next.isInteger()) {
36-
levelSum += next.getInteger();
37-
} else {
38-
List<NestedInteger> list = next.getList();
39-
for (NestedInteger n : list) {
40-
q.offer(n);
25+
public static class Solution1 {
26+
public int depthSumInverse(List<NestedInteger> nestedList) {
27+
Queue<NestedInteger> q = new LinkedList<>();
28+
for (NestedInteger next : nestedList) {
29+
q.offer(next);
30+
}
31+
int prev = 0;
32+
int total = 0;
33+
34+
while (!q.isEmpty()) {
35+
int size = q.size();
36+
int levelSum = 0;
37+
for (int i = 0; i < size; i++) {
38+
NestedInteger next = q.poll();
39+
if (next.isInteger()) {
40+
levelSum += next.getInteger();
41+
} else {
42+
List<NestedInteger> list = next.getList();
43+
for (NestedInteger n : list) {
44+
q.offer(n);
45+
}
4146
}
4247
}
48+
prev += levelSum;
49+
total += prev;
4350
}
44-
prev += levelSum;
45-
total += prev;
51+
return total;
4652
}
47-
return total;
4853
}
4954

5055
}

0 commit comments

Comments
 (0)
0