Java是一門流行的編程語言,廣泛應用于軟件開發。在很多應用中,需要對圖進行處理,其中一個問題是求每個頂點的入度和出度。
/** * 求每個頂點的入度和出度 * @param n 頂點個數 * @param edges 邊列表 * @return 頂點入度和出度數組 */ public int[][] getDegree(int n, int[][] edges) { int[][] degree = new int[n][2]; // 初始化 for (int i = 0; i< n; i++) { degree[i][0] = 0; // 入度 degree[i][1] = 0; // 出度 } for (int i = 0; i< edges.length; i++) { int u = edges[i][0]; // 邊的起點 int v = edges[i][1]; // 邊的終點 degree[u][1]++; // 起點出度+1 degree[v][0]++; // 終點入度+1 } return degree; }
上述代碼是Java實現求每個頂點的入度和出度的方法。它接受兩個參數,一個是頂點個數n,另一個是邊列表edges。返回一個n行2列的二維數組degree,其中degree[i][0]表示第i個頂點的入度,degree[i][1]表示第i個頂點的出度。
具體實現過程如下:
- 首先初始化degree數組,將每個頂點的入度和出度都設置為0。
- 然后遍歷每一條邊,并將對應起點的出度加1,將對應終點的入度加1。
- 最后返回求得的degree數組。
通過這個方法,我們可以快速求解每個頂點的入度和出度,進而解決其他相關問題。