Here is the code I have so far:
public static int mode(int[][] arr) { ArrayList<Integer> list = new ArrayList<Integer>(); int temp = 0; for(int i = 0; i < arr.length; i ++) { for(int s = 0; s < arr.length; s ++) { temp = arr[i][s];
I seem to be stuck at this point on how to get [i][s]
into a single dimensional array. When I do a print(temp)
all the elements of my 2D array print out one a time in order but cannot figure out how to get them into the 1D array. I am a novice 🙁
How to convert a 2D array into a 1D array?
The current 2D array I am working with is a 3×3. I am trying to find the mathematical mode of all the integers in the 2D array if that background is of any importance.
Advertisement
Answer
You’ve almost got it right. Just a tiny change:
public static int mode(int[][] arr) { List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < arr.length; i++) { // tiny change 1: proper dimensions for (int j = 0; j < arr[i].length; j++) { // tiny change 2: actually store the values list.add(arr[i][j]); } } // now you need to find a mode in the list. // tiny change 3, if you definitely need an array int[] vector = new int[list.size()]; for (int i = 0; i < vector.length; i++) { vector[i] = list.get(i); } }