Dans ta fonction "inferieur", je soupçonne que le return false soit mal placé.
Ce que je comprends de ton idée, c'est que tu parcours les éléments du tableau à la recherche "T[j]" inférieur à "a", que si tu en trouves un, tu veux retourner "true" et "false" sinon.
Ton "return false" devrait être après la bouche "for", pas à l'intérieur
En français, ce qu'il faut faire, c'est : dès qu'on trouve un élément qui convient, on est content (=>retourne "true")
Si après avoir parcouru tout le tableau on n'a pas trouvé un élément qui convient, on n'est pas content (=>retourne "false")
Dans ta fonction "longueur", il manque une espace entre new et int sur la ligne "int[] LIS= newint[T.length] ; "
Et sinon il y a un problème comme dans la première fonction avec ton return maximum (comme l'a souligné Zeph d'ailleurs). Cette fonction étant plus obscure que la première... C'est toi le mieux placé pour corriger le problème.
Bon, à titre d'exemple je te donne une correction possible de ta première fonction :
public static boolean inferieur( int[] T, int i, int a )
{
for ( int j= 0 ; j < i ; j++ ) {
if ( T[j] < a ) {
return true ;
}
}
return false ;
}