
class Practice {
	public static void main(String[] arg) {

		int[] arr = {1,2,3,5,4};
		boolean ordered = isInOrder(arr);
		System.out.println("ordered: " + ordered);

		int[] arr1 = {1,2,3,4,5};
		ordered = isInOrder(arr1);
		System.out.println("ordered: " + ordered);

		int[][] arr2 = {};	
		System.out.println("isSquare: " + isSquare(arr2));

		int[][] arr3 = {{1,1,1},{2,2,2},{3,3,3}};
		System.out.println("isSquare: " + isSquare(arr3));
		
		int[][] arr4 = {{1,1},{2,2}};
		System.out.println("isSquare: " + isSquare(arr4));

		setDiagonal(arr4, 4);
		printMatrix(arr4);

		setInverseDiagonal(arr3,4);
		printMatrix(arr3);

	}

	static void printMatrix(int[][] m) {
		for(int[] arr : m) {
			for(int elm : arr) {
				System.out.print(elm + " ");
			}
			System.out.println();
		}
	}

	static void setInverseDiagonal(int[][] m, int k) {
		for(int i = 0; i < m.length; i++) {
			int j = (m.length - 1) - i;
			m[i][j] = k;
		}
	}

	/*
		0  1  2 <- i is row number
		
		1  1  1
		2  2  2
		3  3  3

	*/

	/* create a method named setDiagonal that takes a 2D array
	of integers and an integer as arguments. The method sets the
	elements on the diagonal of the first paramter equal to the
	value in the second parameter. */

	static void setDiagonal(int[][] m, int k) {
		for(int i = 0; i < m.length; i++) {
			m[i][i] = k;
		}
	}

	/* create a method named isSquare that takes a 2D array
	 of integers as an argument and returns true if the 2D array
	is square; otherwise it returns false */

	static boolean isSquare(int[][] m) {
		int numRows = m.length;
		
		if(numRows == 0) {
			return true;
		}
		
		int numCols = m[0].length;

		return (numRows == numCols);
	}

	public static boolean isInOrder(int[] arr) {
		for(int i = 1; i < arr.length; i++) { 
			if(arr[i] < arr[i-1]) {
				return false;
			}
		}
		return true;
	}


}
