|
6 | 6 | import java.util.List;
|
7 | 7 | import java.util.Queue;
|
8 | 8 |
|
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. |
10 | 13 |
|
11 | 14 | Each element is either an integer, or a list -- whose elements may also be integers or other lists.
|
12 | 15 |
|
|
19 | 22 | 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)*/
|
20 | 23 | public class _364 {
|
21 | 24 |
|
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 | + } |
41 | 46 | }
|
42 | 47 | }
|
| 48 | + prev += levelSum; |
| 49 | + total += prev; |
43 | 50 | }
|
44 |
| - prev += levelSum; |
45 |
|
530B
- total += prev; |
| 51 | + return total; |
46 | 52 | }
|
47 |
| - return total; |
48 | 53 | }
|
49 | 54 |
|
50 | 55 | }
|
0 commit comments