Java是一門流行的編程語言,廣泛應(yīng)用于軟件開發(fā)。在很多應(yīng)用中,需要對圖進(jìn)行處理,其中一個問題是求每個頂點的入度和出度。
/** * 求每個頂點的入度和出度 * @param n 頂點個數(shù) * @param edges 邊列表 * @return 頂點入度和出度數(shù)組 */ 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實現(xiàn)求每個頂點的入度和出度的方法。它接受兩個參數(shù),一個是頂點個數(shù)n,另一個是邊列表edges。返回一個n行2列的二維數(shù)組degree,其中degree[i][0]表示第i個頂點的入度,degree[i][1]表示第i個頂點的出度。
具體實現(xiàn)過程如下:
- 首先初始化degree數(shù)組,將每個頂點的入度和出度都設(shè)置為0。
- 然后遍歷每一條邊,并將對應(yīng)起點的出度加1,將對應(yīng)終點的入度加1。
- 最后返回求得的degree數(shù)組。
通過這個方法,我們可以快速求解每個頂點的入度和出度,進(jìn)而解決其他相關(guān)問題。
下一篇css中的版心樣式