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.