public class BFSTest {
@Test
public void test(){
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
int[][] nodes = new int[n][];
for (int i = 0; i < n; i++) {
nodes[i] = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
}
int[] ask = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
System.out.println(get(ask, nodes));
}
private String get(int[] ask, int[][] nodes) {
// 所求坐标越界
if (ask[0] < 0 || ask[1] < 0) return "{}";
LinkedList<int[]> queue = new LinkedList<>(){{offer(nodes[0]);}};
int level = 0;
while (level < ask[0] && !queue.isEmpty()){
// 保存下一层节点
ArrayList<int[]> temp = new ArrayList<>();
// 遍历这一层节点
while (!queue.isEmpty()){
int[] node = queue.poll();
for (int j = 1; j < node.length; j++) {
temp.add(nodes[node[j]]);
}
}
level++;
queue.addAll(temp);
}
if (level == ask[0] && queue.size() > ask[1]) return "{"+queue.get(ask[1])[0]+"}";
else return "{}";
}
}
Tree_BFS
最新推荐文章于 2024-10-17 11:39:06 发布