Implement a method/function that produces running sum runningSum2DArray(int[][] array, int dir) across rows (left to right or right to left) or columns (top to bottom or bottom to top)
Input to the method: A 4x4 two dimensional int array and an integer (1, 2, 3 or 4 for left, right, up, down respectively).
Output: The modified array after producing the running sums according to the direction.
For example: If the input to the method is the same as the earlier 2D array,
10 15 30 40
15 5 8 2
20 2 4 2
1 4 5 0
and if the direction is 2 (right),the output array would be printed as:
10 25 55 95
15 20 28 30
20 22 26 28
1 5 10 10
Now, Implement another function runningSum2DArrayList(ArrayList< ArrayList< Integer > > list, int dir) that performs the same functionality.
My main method is as follows:
import java.util.ArrayList;
import java.util.Scanner;
public class Lab3Task2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//input arrays with ";" between them
String[] temp = scanner.nextLine().split(";");
//input integers with white space between them
int[][] arr = new int[4][4];
for(int i = 0; i < 4; i++){
String[] tempA = temp[i].split("\\s");
for(int j = 0; j < 4; j++){
arr[i][j] = Integer.parseInt(tempA[j]);
}
}
//input integers with white space between them
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
for(int i = 0; i < 4; i++){
String[] tempA = temp[i].split("\\s");
list.add(i, new ArrayList<Integer>());
for(int j = 0; j < 4; j++){
list.get(i).add(j, Integer.parseInt(tempA[j]));
}
}
runningSum2DArray(arr, 1);
runningSum2DArray(arr, 2);
runningSum2DArrayList(list, 3);
runningSum2DArrayList(list, 4);
scanner.close();
}
}