Created
August 21, 2020 17:48
-
-
Save dillonius01/7faedbecffc3bd3176c9d2b2fa2f9ad5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.io.*; | |
| import java.util.*; | |
| import java.util.stream.Collectors; | |
| class Solution { | |
| public static void main(String[] args) { | |
| MultiDimArrayNode n1 = new MultiDimArrayNode(2); | |
| MultiDimArrayNode n2 = new MultiDimArrayNode(3); | |
| MultiDimArrayNode n3 = new MultiDimArrayNode(4); | |
| MultiDimArrayNode n4 = new MultiDimArrayNode(n1, n2, n3); | |
| MultiDimArrayNode n5 = new MultiDimArrayNode(5); | |
| MultiDimArrayNode n6 = new MultiDimArrayNode(6); | |
| MultiDimArrayNode n7 = new MultiDimArrayNode(7); | |
| MultiDimArrayNode n8 = new MultiDimArrayNode(n4, n5); | |
| MultiDimArrayNode n9 = new MultiDimArrayNode(n6, n7, n8); | |
| System.out.println(n9); | |
| System.out.println(n9.computeSum()); | |
| } | |
| public static class MultiDimArrayNode { | |
| public Integer value; | |
| public MultiDimArrayNode[] innerList; | |
| public MultiDimArrayNode(Integer value) { | |
| this.value = value; | |
| } | |
| public MultiDimArrayNode(MultiDimArrayNode ...innerList) { | |
| this.innerList = innerList; | |
| } | |
| public Integer computeSum() { | |
| if (value != null) { | |
| return value; | |
| } else if (innerList != null) { | |
| return Arrays.stream(innerList).map(node -> node.computeSum()).collect(Collectors.summingInt(x -> x)); | |
| } else { | |
| return 0; | |
| } | |
| } | |
| @Override | |
| public String toString() { | |
| if (value != null) { | |
| return value.toString(); | |
| } else if (innerList != null) { | |
| List<String> innerStrings = Arrays.stream(innerList).map(n -> n.toString()).collect(Collectors.toList()); | |
| return "[" + String.join(", ", innerStrings) + "]"; | |
| } else { | |
| return "empty MultiDimArrayNode"; | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment