private int getMaxWithoutZero(int[] data, int begin, int end) {
			int cur = data[begin];
			int max = cur;
			for (int i = begin + 1; i <= end; i++) {
				cur = cur * data[i];
				if (cur > max) {
					max = cur;
				}
			}

			cur = data[end];
			if (cur > max)
				max = cur;
			for (int i = end - 1; i >= begin; i--) {
				cur = cur * data[i];
				if (cur > max) {
					max = cur;
				}
			}

			return max;
		}