|
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 | | - total += prev; |
| 51 | + return total; |
46 | 52 | } |
47 | | - return total; |
48 | 53 | } |
49 | 54 |
|
50 | 55 | } |
0 commit comments