private int[] solveByBFS(int numCourses, int[] indegrees, List<List<Integer>> adjsGraph) {
		LinkedList<Integer> queue = new LinkedList<Integer>();
		for (int i = 0; i < numCourses; i ++) {
			if (indegrees[i] == 0) {
				queue.offer(i);
			}
		}
		
		int count = 0;
		int[] orders = new int[numCourses];
		while (!queue.isEmpty()) {
			int point = queue.poll();
			orders[count ++] = point;
			
			for (int i = 0; i < adjsGraph.get(point).size(); i ++) {
				int dependPoint = adjsGraph.get(point).get(i);
				if (-- indegrees[dependPoint] == 0) {
					queue.offer(dependPoint);
				}
			}
		}
		
		for (int i = 0, j = orders.length - 1; i < j; i ++, j --) {
			int tmp = orders[i];
			orders[i] = orders[j];
			orders[j] = tmp;
		}
		
		return count == numCourses ? orders : new int[0];
	}