A parte un piccolo errore, dove stà il tuo problema?

L'errore consiste nell'aver impostato lunghezza = vettore.size() e non (vettore.size()-1): questo ti porterà sicuramente ad un errore di ArrayIndexOutOfBoundsException per come hai scritto il codice.

L'algoritmo, a prima vista, mi sembra corretto.

Solo una cosa: il metodo lo hai erso privato perchè lo usi solo all'interno della classe da altri metodi?

Ciao.