Пікірлер
@sebastianthor9377
@sebastianthor9377 7 ай бұрын
"Как решать задачИ по программированию", ключевая тема не раскрыта; а так и дураку понятно, что надо идти от простого к сложному, хз За решение спиральки спасибо, было интересно
@q1ncite
@q1ncite 7 ай бұрын
для N=3 и 2, спиралька не работает нужно в первом цикле идти до N, а не до N - 2 ⬜⬜⬜⬜ 🟦🟦🟦🟦 🟥🟥🟥🟥
@sashapushkov
@sashapushkov 8 ай бұрын
Если в списке будет несколько повторяющихся чисел (1,2,2,7,26), то при вызове метода remove удалится только последний элемент :(
@viktorshvidkiy6713
@viktorshvidkiy6713 11 ай бұрын
в методе remove не проверяется последний элемент списка, ведь его поле next как раз равно null и тело цикла не выполнится
@volok55
@volok55 11 ай бұрын
Code: #include<iostream> using namespace std; int main() { const int n = 6; int matrix[n][n]; int num = 0 ; for (int delta = 0; delta <= n-2; delta++) { for (int i =delta; i < n - delta; i++) { num++; matrix[delta][i] = num; } for (int i = delta+1; i < n - delta; i++) { num++; matrix[i][n-1- delta] = num; } for (int i =n-2-delta; i >delta; i--) { num++; matrix[n-1-delta][i] = num; } for (int i = n-1-delta; i >= 1 + delta; i--) { num++; matrix[i][delta] = num; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << matrix[i][j]<<" "; if (matrix[i][j] < 10) { cout << " "; } }cout << endl; } }
@levprom4228
@levprom4228 Жыл бұрын
Большое спасибо за видео!
@Vidburst-1208
@Vidburst-1208 Жыл бұрын
Спассиба за помош. Я долго не понимал как его решат. Но тут ест одна проблема ето программа не работает на 3 на 3. Можеш исправит или дат подсказку чтоб как его зделат. Пожалуста.
@nataljaroehm4754
@nataljaroehm4754 Жыл бұрын
Добрый вечер. Как реализовать метод: получение элемента по индексу public int get(int index). Заранее спасибо
@Roger35.91
@Roger35.91 Жыл бұрын
Круто объясняешь, спасибо большое, очень помог разобраться! 👍
@Marina-qi2nl
@Marina-qi2nl Жыл бұрын
музыка лишняя на фоне..
@BS-nx4vi
@BS-nx4vi Жыл бұрын
Круто, що перейшов на українську. Українці відмовляються від рос контенту і всього іншого, тому підтримка має бути 👍 Головне не запускай канал, так як українською такі відео мало знайти, а в тебе круто виходить пояснювати. Нехай щастить😉
@romazanSQ
@romazanSQ Жыл бұрын
буде ще java українською?💙💛
@Антон-ь4ш1у
@Антон-ь4ш1у Жыл бұрын
Спасибо огромное, очень хороший и нужный метод для поэтапного решения любых задач
@Тимофей-т5э
@Тимофей-т5э Жыл бұрын
бро, спасибо огромное, благодаря тебе, я наконец-то понял как решать данную задачу, просто лучший!
@kacatuk844
@kacatuk844 Жыл бұрын
Дякую за теплі слова, якщо не важко, то підпишись)
@ocean1487
@ocean1487 Жыл бұрын
Самое лучшее объяснение . Хорош
@vasiliypupkin6311
@vasiliypupkin6311 2 жыл бұрын
Чел, а можешь рассказать, как решать алгоритмические задачи, очень туго идёт, может есть какие-то способы пробить барьер
@ИванПотапов-ю3х
@ИванПотапов-ю3х 2 жыл бұрын
код гавно, не проходит и половины теста. Нахера писать какой то половинчатый код, и в видосе показывает то что работает только элементами которые находятся в середине!!! на кожаной флейте вертел такие уроки!!!!
@yurademchenko9924
@yurademchenko9924 2 жыл бұрын
Лайк, підписка. Дуже класно пояснюєш.
@kart0n50
@kart0n50 2 жыл бұрын
дуже цікаво чекаю ще на пайтон (:
@Anatolii_Bychko
@Anatolii_Bychko 2 жыл бұрын
Спасибо. Попробуем на Java реализовать
@boy_next_door8270
@boy_next_door8270 2 жыл бұрын
Написал перед просмотром видео, для интереса. Вдруг кому нужно оставлю здесь: #include<iostream> int main() { static int iter = 1; const int l = 25; const int w = 25; int arr[w][l]{}; const int end = w * l; int circle = 0; int ll = 0; int ww = 2; for (;;) { for (int i = 0; i < l - ll; i++) { arr[0 + circle][i + circle] = iter; iter++; } if (iter == end+1){ break; } for (int i = 0; i < w - ww; i++) { arr[i + 1 + circle][l - 1 - circle] = iter; iter++; } for (int i = 0; i < l - ll; i++) { arr[w - 1 - circle][l - 1 - i - circle] = iter; iter++; } for (int i = 0; i < w - ww; i++) { arr[w - 2 - i - circle][0 + circle] = iter; iter++; } circle++; ll += 2; ww += 2; } for (int i = 0; i < w; i++) { for (int j = 0; j < l; j++) { if (i == 0) std::cout << arr[i][j] << " "; else std::cout << arr[i][j]<<" "; } std::cout << std::endl; } }
@rexdraconis1703
@rexdraconis1703 2 жыл бұрын
Все, остановился на третей минуте. Сейчас уже ночь, завтра попробую решить в лоб.
@kuzmenkomi6445
@kuzmenkomi6445 2 жыл бұрын
Но это решение не работает если спираль 2 на 2 или 3 на 3
@bogdanheikkinen3431
@bogdanheikkinen3431 2 жыл бұрын
Круте відео, як раз починаю програмувати на плюсах. Продовжуй записувати відоси на цій мові, в тебе добре виходить
@enrewardronkhall8340
@enrewardronkhall8340 2 жыл бұрын
Моя проблема в том, что я проходил курс по Python и смог сам без подсказок решить эту задачу, а потом, после окончания курса, просто напросто забыл как я её решил
@ferdinand6624
@ferdinand6624 2 жыл бұрын
Хороший урок: вот код // змейка.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include <iostream> using namespace std; #define n 5 // задаем для n значение 5 - количество столбцов и строк int ZMEYA[n][n]; //создаем массив строка/столбцы int main() { int num = 1; // переменная для роста значений int delta = 2; // переменная для сдвига во внутрь змейки for (int delta = 0; delta < n - 2; delta++) { // заполняем круги змейки циклом // заполняем круг // заполняем верхнюю строку: for (int i = 0 + delta; i < n - delta; i++) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[0 + delta][i] = num; //ноль - строка, значение i - увеличиваем от нуля до n то есть заполнили верхнюю строку с индексом 0 num++; //растет переменная на 1 после заполнения строки } num--; // заполняем правый столбец: for (int i = 0 + delta; i < n - delta; i++) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[i][n-1 - delta] = num; // i - увеличиваем строку ,а 4 столбец - неизменный num++; //растет переменная на 1 после заполнения строки } num--; // заполняем нижнюю строку: for (int i = n - 1 - delta; i >= 0 + delta; i--) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[n-1 - delta][i] = num; // i - увеличиваем столбец,а 4 строка - неизменна num++; //растет переменная на 1 после заполнения строки } num--; // заполняем левый столбец: for (int i = n - 1 - delta; i >= 1 + delta; i--) //создаем цикл от 0 до значения n и с увеличением i на 1 { ZMEYA[i][0 + delta] = num; // i - увеличиваем строку ,а 0 столбец (самый левый)- неизменный num++; //растет переменная на 1 после заполнения строки } } //вывод массива for (int i= 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%5d", ZMEYA[i][j]); } cout << endl; } }
@natalyaiv3414
@natalyaiv3414 2 жыл бұрын
Спасибо! Очень понятно и наглядно 👍
@ushio.
@ushio. 2 жыл бұрын
Даров, можеш будь-ласка зробити невеличке код-ревью ( просто пару слів чи не брудний код), робив до перегляду відео
@ushio.
@ushio. 2 жыл бұрын
#include <iostream> using namespace std; const int N = 7; int main() { int arr[N][N]; int num = 1; int iadd = 0, first = 0, counted= 0; int centreID = N / 2; do { for (int i = iadd; i < N - iadd; i++, num++) { arr[first][i] = num; } iadd++; for (int i = iadd; i < N - iadd; i++, num++) { arr[i][N - iadd] = num; } for (int i = N - iadd; i >= iadd; i--, num++) { arr[N - iadd][i] = num; } for (int i = N - iadd; i >= iadd; i--, num++) { arr[i][first] = num; } counted++; first++; } while (arr[centreID][centreID] != N * N && counted < N); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << arr[i][j] << "\t"; } cout << endl; } }
@kacatuk844
@kacatuk844 2 жыл бұрын
Привіт, так це можливо. Ще рекомендую вступити в спільноту, там також можна буде просити ревью чи поради, ось посилання (тут зібрані всі україномовні спільноти по різним мовам програмування): github.com/Learn-Together-Pro/it_ua
@ushio.
@ushio. 2 жыл бұрын
@@kacatuk844 Дуже дякую за посилання, буде корисним
@ushio.
@ushio. 2 жыл бұрын
дякую за мотивацію)
@АлексейЗахарков
@АлексейЗахарков 2 жыл бұрын
Спасибо, действительно хорошее и полезное видео.
@nikitoszdanov8257
@nikitoszdanov8257 2 жыл бұрын
Ну видео 🔥🔥🔥
@nikitoszdanov8257
@nikitoszdanov8257 2 жыл бұрын
Как патриота Украины я тебя понимаю, респект, но для развивающегося Ютуб канала решение перейти на украинский язык нуу 🙄 сомнительно, охват аудитории меньше
@gekuymetxd6273
@gekuymetxd6273 2 жыл бұрын
не только уменьше, оно будет почти отсутствовать, у меня был блогер который снимал по языку GO очень хорошо все обьяснял, его смотрели 90%+ русскоязычных людей, а он вдруг перешел на украинский стал таким же патриотом, послал всех кому не нравится украинский, и стал пилить на украинском, не понимаю что им движет, могли бы тогда сразу начать на украинском, а не набирать аудиторию на русском и перейти сразу на другой язык
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Длинный коооооооммеееннннттттт для продвижения ккккккаааааааааааанннннннннннннаааааааааллллллллллллааааааааааа. Не забрасывай канал. Если так будешь делать со всеми видео, то у канала БОЛЬШОЕ БУДУЩЕе) не обращай внимания что мало подписчиков. ,, Москва не сразу строилась,,
@mikolka3848
@mikolka3848 2 жыл бұрын
Длина комента не влияет на продвижение канала, а вот их количество
@woodorsha2955
@woodorsha2955 2 жыл бұрын
@@mikolka3848 значит ещё пару напишем
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Ещё пару
@woodorsha2955
@woodorsha2955 2 жыл бұрын
Ты главное не забрасывай канал. Все спокойно и уверенно объясняешь
@woodorsha2955
@woodorsha2955 2 жыл бұрын
У канала БОЛЬШОЕ БУДУЩЕе
@v_chelnik
@v_chelnik 2 жыл бұрын
Спасибо огромное
@nunky_iroh
@nunky_iroh 2 жыл бұрын
Спасибо друг! Всё правильно делаешь что объясняешь на пальцах! А то на всяких сайберфорумах, хабрах и т.п. все шибко умные и ленивые чтобы объяснять! Обязательно делай новые видео такой же формы! Если надо задач могу накидать кучу!))
@starlord0208
@starlord0208 2 жыл бұрын
🔥🔥🔥🔥🔥
@haworthia5217
@haworthia5217 2 жыл бұрын
Дуже цікаве і корисне відео для новачка 🔥
@igord3582
@igord3582 2 жыл бұрын
Спасибо
@ansornisoev1304
@ansornisoev1304 2 жыл бұрын
Спасибо огромное брат. Напиши пожалуйста номер ватсап хочу дружить с тобой
@eghishemanukyan2003
@eghishemanukyan2003 2 жыл бұрын
спасибо большое за такое решение, пожалуйста развивайте эту тему, и вставляйте такие видео чаще и много
@kurinoski
@kurinoski 2 жыл бұрын
Классно, радует, что ютуб рекомендует такие каналы:3
@ivansuvorov8303
@ivansuvorov8303 2 жыл бұрын
посыпался на первом тесте) если в конце будут одинаковые данные, к примеру 1 8 8 8 8 8, то remove не уберет все восьмерки, оставит половину. решил созданием аррейлиста в который при методе add добавлял текущий узел, а в remove изначально сказал пройтись по этому листу. чувствую что решение не самое умное, но это сработало
@ivansuvorov8303
@ivansuvorov8303 2 жыл бұрын
получается что при узлах data(next) ... 8(8) 8(8) 8(8) 8(8) 8(8) ... ссылки на следующий элемент меняются с 8 на 8, но маркировать ссылки мне показалось сложнеее чем создать листок
@АнастасияЧернева-ь9н
@АнастасияЧернева-ь9н 9 ай бұрын
нашла решение более короткое: в while в классе remove вместо двух строк, перекидывающих текущий и предыдущий объекты на следующие, добавляем такой if: if (currentNode.data != data) { previousNode = currentNode; } currentNode = currentNode.next; вроде как проблему полностью решает
@vladyan01
@vladyan01 2 жыл бұрын
Классно, а расскажи как в универе учили проектировать программу, что бы потом было просто добавить функционал или легко изменить что-то. Крутые паттерны не надо, просто самые простые и гениальные))
@wanes101
@wanes101 2 жыл бұрын
ну это для новичков, 2х мерные массивы тоже мне открытие, еще ООП для себя можно открыть как новый уровень программирования. Не понял к сожалению фишки, кроме выражения что не надо долго думать над задачей, а надо упростить но это понятно т.е. декомпозиция задач. Хотя это тоже спорный вопрос, зависит от задачи
@ЮрийНиколаевич-л6т
@ЮрийНиколаевич-л6т 2 жыл бұрын
спасибо, очень хорошо рассказано и показано.
@user-cp123pc5tk8d
@user-cp123pc5tk8d 2 жыл бұрын
Можно лучше оптимизировать , не используя две лишних переменных :) Такой пример не сильно оптимальный , в плане расхода памяти ОЗУ . Правда это актуально для микроконтроллеров :)
@kacatuk844
@kacatuk844 2 жыл бұрын
Да, но суть видео была в том, чтобы показать начинающим, как вообще переходить от условия задачи к решению, постепенно наращивая сложность. Конечно, следующим этапом может быть оптимизация, но это уже за рамки этого видео. Спасибо за отзыв!
@kolyan_69
@kolyan_69 2 жыл бұрын
Согласен со всеми. Благодаря этому видео стало понятнее как такое реализовывать. Но уже мучаюсь вторую ночь с n*m размером массива.
@kacatuk844
@kacatuk844 2 жыл бұрын
Как успехи?
@kolyan_69
@kolyan_69 2 жыл бұрын
@@kacatuk844 Да я бросил это дело. Понимаю, что это плохо но нужно идти дальше.
@АнтонЧе-ь9м
@АнтонЧе-ь9м 2 жыл бұрын
ты крутой! посмотрел несколько видосов, так и не смог понять алгоритм, ты всё круто разложил по полочкам!
@kacatuk844
@kacatuk844 2 жыл бұрын
Спасибо за теплый отзыв!
@erakairzhan
@erakairzhan 2 жыл бұрын
Огромное спасибо , логика такая же но осуществить было проблематично )
@krab9241
@krab9241 2 жыл бұрын
помог понять. спасибо. это первый толковый видос, который нашелся!
@kacatuk844
@kacatuk844 2 жыл бұрын
Хочу добавить, что все таки немного выстрелили себе в ногу, и наша функция удаления сломается об удаление корня. Функции нужно вызывать *имя функции*.call(this, node, prev) чтобы привязать this объекта. Внизу есть код со сделанным домашним заданиям, там исправлено, можно подсмотреть.