Secondo me hai messo due cicli for in piu' e fatto un po' di confusione con il riempimento della matrice.
Una volta calcolata la sottostringa, puoi direttamente inserirla nella matrice.
codice:
public class Matrice {
public static int[][] mLunghezzaSottostringa(String[]job){
int[][]matrice;
int i,j;
int sottostringa=0;
matrice = new int [job.length][];
for(i=0; i<matrice.length;i++) {
matrice[i] =new int[i+1];
}
for(i=0;i<job.length;i++){
for(j=0;j<job.length;j++){
//Se i e uguale a j sono sulla diagonale
if(i==j) {
matrice[i][j]=-1;
} else {
sottostringa= Lcs.longestCommonSubstring(job[i], job[j]);
matrice[i][j]=sottostringa;
}
System.out.print(matrice[i][j]+" ");//Stampa di controllo
}
System.out.println();//Stampa di controllo
}
return matrice;
}
}