docs: protected Predict<int[]> getPath(Node[][] lattice) {
  
  		Predict<int[]> res = new Predict<int[]>();
  		if (lattice.length == 0)
  			return res;
  
  		float max = Float.NEGATIVE_INFINITY;
  		int cur = 0;
  		for (int c = 0; c < ysize(); c++) {
  			if (lattice[lattice.length-1][c] == null)
  				continue;
  			
  			if (lattice[lattice.length - 1][c].score > max) {
  				max = lattice[lattice.length - 1][c].score;
  				cur = c;
  			}
  		}
  
  		int[] path = new int[lattice.length];
  		path[lattice.length - 1] = cur;
  		for (int l = lattice.length - 1; l > 0; l--) {
  			cur = lattice[l][cur].prev;
  			path[l - 1] = cur;
  		}
  		res.add(path,max);
  
  		return res;
  	}