static int findLargestVolumeWater(boolean [][] arr) {
		int[] heightArr = getHeightArray(arr);
		int maxVolume = 0;
		for (int col1 = 0; col1 < heightArr.length; col1++) {
			for (int col2 = col1 + 1; col2 < heightArr.length; col2++) {
				if (heightArr[col2] >= heightArr[col1]) {
					int row1 = arr.length - heightArr[col1];
					int row2 = arr.length - heightArr[col2];
					int volume = findVolume(arr, col1, col2, row1, row2);
					// Max volume found for this height.
					if (volume > maxVolume) {
						maxVolume = volume;
						break;
					}
				}
			}
		}
		
		for (int col1 = heightArr.length - 1; col1 >= 0; col1--) {
			for (int col2 = col1 - 1; col2 >= 0; col2--) {
				if (heightArr[col2] >= heightArr[col1]) {
					int row1 = arr.length - heightArr[col1];
					int row2 = arr.length - heightArr[col2];
					int volume = findVolume(arr, col1, col2, row1, row2);
					// Max volume found for this height.
					if (volume > maxVolume) {
						maxVolume = volume;
						break;
					}
				}
			}
		}
		return maxVolume;
	}