The following code snippet is to find the minimum possible degree of a graph whose number of vertices(n) and edges(e) are given.
The algorithm is such that a vertex can have maximum degree equal to (n-1) but if it is having degree 1 it means there is one more vertex whose degree is one and if its degree is 2 then there are 2 vertices whose degree is 1.
The here is the code for finding minimum degree of a graph
import java.io.*; import java.util.Arrays; public class MinDegree { //function to find sum of an array static int sum(int[] arr){ int sum = 0; for(int a: arr){ sum += a; } return sum; } //function to find minimum of an array static int minimum(int[] arr){ int min = Integer.MAX_VALUE; for(int i=0; i<arr.length; i++){ if(arr[i] < min) min = arr[i]; } } return min; } public static void main(String[] ar) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //number of edges should not exceed n(n-1)/2 System.out.println("Enter no of vertices and edges: n e"); String[] in = br.readLine().split(" ");//input should be like 5 7 int vertices = Integer.parseInt(in[0]);//parsing string into integers int edges = Integer.parseInt(in[1]); int[] degree = new int[vertices];//buffer to store degrees int counter = 0; int round = 0; while(sum(degree) < (2*edges)){//sum of degrees must be less than 2*edges if(degree[counter] < (vertices-1)){ degree[counter] += 1; degree[round+counter+1] += 1;//it will increase neighbours degree round++; } else{ counter++; round = 0; } } System.out.println(minimum(degree)); } }Happy Coding :)