Комментарии:
Спасибо! Круто! Хотелось бы формат собеседования ))
ОтветитьВещь !
ОтветитьВладимир, у меня вопрос, почему задачи такие легкие для собеса в Яндекс? На Яндекс контесте, на бэкенд стажировку были задачи в много раз сложнее.
Ответитьstruct List {
ListNode* reverseList(ListNode* head) {
ListNode* ans = nullptr;
while (head != nullptr) {
ListNode* node = head;
head = head->next;
node->next = ans;
ans = node;
}
return ans;
}
};
1->2->3->4->5
можете пояснить, при такой реализации, как происходит подцепление
1. создаем node, указатель на голову(единица)
2. сдвигаем голову на один элемент(двойка)
а вот дальше не совсем понятно node-> next это еще единица, зачем тогда тут next ? (или node-> next мы присваиваем указателю node -> nullptr)?
Меня возьмут в гугол?)
func reverse(arr []int32) []int32 {
rev := make([]int32, len(arr))
for i, j := 0, len(arr)-1; i < len(arr); i, j = i+1, j-1 {
rev[j] = arr[i]
}
return rev
}
спасибо!
ОтветитьМаксимально непонятно
Ответитьспасибо, максимально понятно, до этого не мог уловить процесс замены))
Ответитьтипичный литкод булшит)
адекватнее не 2 указателя а изначально в структуру всунуть размер)))
ну а если этого нету, то дать пи*ды тому кто придумал подобное, посчитать размер линейно и 2ым прохлдом вернуть желаемое.
суть в том что количество операций одинаково и кеш миссинг тот же.