pub fn get_depth(mut self, a: Vec<i64>) {
let mut counter = 0;
let mut index = 0;
for i in a.clone() {
index += 1;
if a[index] > a[index -1]{
counter += 1;
}
Когда заканчиваются элементы в векторе, выдает: thread 'main' panicked at 'index out of bounds: the len is 2000 but the index is 2000', src/alg.rs:19:16.
Как такое дело фиксится?
у тебя вектор на 2000 элементов, а ты пробуешь достать 2001й. исправляется, гм,изменением логики) по примеру не очень понятно что ты там вообще делаешь,но можно инкремент индекса сдвинуть в конец тела цикла, например.
г-споди… 1. зачем ты забираешь владение a? 2. зачем ты после этого его клонируешь? 3. используй .enumerate()
let counter = a .iter() .zip(a.iter().skip(1)) .filter(|(current, next)| next > current) .count();
ну так там не весь цикл показан
в следующий раз покажет больше/лучше :)
Блин, а круто ты это придумал. Новичка легко ввести в восторг
И вам спасибо!
.windows(2).filter(|w| w[1] > w[0]) Надо было ставить windows
Обсуждают сегодня