Skip to content

Instantly share code, notes, and snippets.

@dillonius01
Created August 21, 2020 17:48
Show Gist options
  • Select an option

  • Save dillonius01/7faedbecffc3bd3176c9d2b2fa2f9ad5 to your computer and use it in GitHub Desktop.

Select an option

Save dillonius01/7faedbecffc3bd3176c9d2b2fa2f9ad5 to your computer and use it in GitHub Desktop.
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