La parte donde calculas el maximo esta bien, pero al calcular el minimo, porque lo comparas contra el maximo? Debes seguir la misma logica que con el maximo:
    En esta parte:    
El operador 
| se utiliza para trabajar con los bits. Dentro del if se debe utilizar el operador 
|| (que es 
OR) o 
&& (que es 
AND)