我在其中一次采访中发现了以下问题.请建议我这个算法.我不需要代码.
N很多可能的饮料.(n1,n2 ..) C多少固定客户. 例:
Cust1: n3,n7,n5,n2,n9
Cust2: n5
Cust3: n2,n3
Cust4: n4
Cust5: n3,n4,n3,n5,n7,n4
Output: 3(n3,n4,n5)
Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,其中一个方法将char [] []作为输入并返回char [].方法如下 -
private static char[] getTableFromTwoChits(char[][] inputTwoChits) {
Map<Character, Character> map = new HashMap<>();
Arrays.stream(inputTwoChits).forEach(x -> map.put(x[0], x[1]));
map.entrySet().forEach(System.out::println);
char[] result = new char[inputTwoChits.length+1]; int index=0;
char startPoint = inputTwoChits[0][0];
do {
result[index] = startPoint;index++;
startPoint = map.get(startPoint);
}while(startPoint != inputTwoChits[0][0]);
result[index] = startPoint;
return result;
}
Run Code Online (Sandbox Code Playgroud)
主要方法如下 -
public static void main(String[] args) {
char[][] inputTwoChits = {{'A','B'},{'C','D'},{'B','C'},{'E','F'},{'F','A'},{'D','E'}};
char[] outputTwoChits = getTableFromTwoChits(inputTwoChits);
Arrays.stream(outputTwoChits).forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
方法getTableFromTwoChits()中的第2行正在编译,而main方法的第3行没有编译.
请解释这种行为背后的原因是什么?
编译错误如下所述 -
/CircularTableTwoChits.java:21: error: no suitable method found for stream(char[]) …Run Code Online (Sandbox Code Playgroud) 在许多问题中,我们需要重复查找树中节点的父节点或祖先节点。因此,在这些场景中,一种不太复杂的方法似乎是使用父指针,而不是在运行时查找父节点。这样既节省时间,又增加空间。任何人都可以建议,在哪种问题或场景中,建议在树中使用父指针?
例如 - 树的两个节点之间的距离?