Code to find the proper index comparing 3 values for max one
I think it's easier to follow the second version. I've extracted out some helper variables:

    final int b = array[i][j + 1];
    final int c = array[i + 1][j];
    final int d = array[i + 1][j + 1];

    if (d &gt; b &amp;&amp; d &gt; c) {
        i = i + 1;
        j = j + 1;
    } else if (b &gt; c) {
        j = j + 1;
    } else {
        i = i + 1;
    }


It seems a little bit readable for me but to be honest I'm not completely satisfied with the result.