Бесплатные курсы по программированию C++
▪Программирование на языке C++(Stepik)
В курсе будет рассмотрено множество различных возможностей языка, и в том числе мы поговорим о нововведениях стандартов C++11 и C++14, стандартной библиотеке шаблонов и обработке ошибок.
▪Введение в программирование (C++)
Основы программирования на C++ на примере множества несложных практических задач.
▪Программирование на языке C++
Данный базовый курс повествует об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции. Курс далеко не исчерпывающий и покрывает лишь небольшую часть стандарта языка C++, однако мы постарались рассказать о наиболее важных возможностях этого языка.
▪Многопоточное программирование на С/С++
В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков.
@cpluspluc
▪Программирование на языке C++(Stepik)
В курсе будет рассмотрено множество различных возможностей языка, и в том числе мы поговорим о нововведениях стандартов C++11 и C++14, стандартной библиотеке шаблонов и обработке ошибок.
▪Введение в программирование (C++)
Основы программирования на C++ на примере множества несложных практических задач.
▪Программирование на языке C++
Данный базовый курс повествует об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции. Курс далеко не исчерпывающий и покрывает лишь небольшую часть стандарта языка C++, однако мы постарались рассказать о наиболее важных возможностях этого языка.
▪Многопоточное программирование на С/С++
В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков.
@cpluspluc
👍8🔥3❤2🤬1
Видеокурс C++ для начинающих
Если давно хотели изучить «плюсы», то этот курс то, что вам нужно. Здесь вы найдёте 200 уроков, которые специально сделаны достаточно короткими, чтобы вы могли их изучить, осмыслить и не устать.
Сохраняйте себе в закладки и начинайте заниматься:
https://www.youtube.com/watch?v=kRcbYLK3OnQ&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r
#видео #cpp
Если давно хотели изучить «плюсы», то этот курс то, что вам нужно. Здесь вы найдёте 200 уроков, которые специально сделаны достаточно короткими, чтобы вы могли их изучить, осмыслить и не устать.
Сохраняйте себе в закладки и начинайте заниматься:
https://www.youtube.com/watch?v=kRcbYLK3OnQ&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r
#видео #cpp
🔥17❤4👍2
10 лучших идей C++ проекта для начинающих
Как вам помогут эти проекты?
Чтобы попрактиковаться в изучении C++, вы можете выполнять множество проектов от простого до продвинутого. Каждый из этих проектов научит вас чему-то новому, чтобы вы были знакомы с наиболее важными темами, которые всегда будут вам полезны при создании реальных проектов.
Для работы над этими проектами вам необходимо установить IDE. Вы можете скачать бесплатную версию Visual Studio с официального сайта Microsoft . Также можно использовать Code::Blocks скачав с их официального сайта.
▪ Читать
@cpluspluc
Как вам помогут эти проекты?
Чтобы попрактиковаться в изучении C++, вы можете выполнять множество проектов от простого до продвинутого. Каждый из этих проектов научит вас чему-то новому, чтобы вы были знакомы с наиболее важными темами, которые всегда будут вам полезны при создании реальных проектов.
Для работы над этими проектами вам необходимо установить IDE. Вы можете скачать бесплатную версию Visual Studio с официального сайта Microsoft . Также можно использовать Code::Blocks скачав с их официального сайта.
▪ Читать
@cpluspluc
👍15🔥3❤1
Media is too big
VIEW IN TELEGRAM
🎮 Подробный разбор кода игры Super Mario на языке C++ (9 шагов по созданию игры)
00:00 Введение
00:17 Шаг 1: Создание игрока
01:48 Шаг 2: Создание платформера
07:03 Шаг 3: Создание флажка
08:26 Шаг 4: Поставить изображение frend
08:57 Шаг 5: Добавления надписей для уровня
11:25 Шаг 6: Добавления врагов
16:45 Шаг 7: Добавление урона и возрождение игрока
19:13 Шаг 8: Добавление меню
23:31 Шаг 9: Добавление музыки и звуки
26:43 Игра готова
▪Ссылка на код
▪Ссылки на медиадля игры
📌 Источник
#cpp #programming
@cpluspluc
00:00 Введение
00:17 Шаг 1: Создание игрока
01:48 Шаг 2: Создание платформера
07:03 Шаг 3: Создание флажка
08:26 Шаг 4: Поставить изображение frend
08:57 Шаг 5: Добавления надписей для уровня
11:25 Шаг 6: Добавления врагов
16:45 Шаг 7: Добавление урона и возрождение игрока
19:13 Шаг 8: Добавление меню
23:31 Шаг 9: Добавление музыки и звуки
26:43 Игра готова
▪Ссылка на код
▪Ссылки на медиадля игры
📌 Источник
#cpp #programming
@cpluspluc
👍19🔥6❤4👎1
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
int i, &j = i;
[=]
{
cout << is_same<decltype ((j)), int >::value
<< is_same<decltype (((j))), int & >::value
<< is_same<decltype ((((j)))), int const& >::value
<< is_same<decltype (((((j))))), int && >::value
<< is_same<decltype((((((j)))))), int const&& >::value;
}();
}
@cpluspluc
👍14🔥1👏1
👍12🔥8🤣4❤1
🔥 Собрали для вас подборку ресурсов для подготовки к С++ собеседованию.
▪300+ вопросов с собеседований по C++
▪Публичное System Design Interview на конференции C++ Russia 2022
▪1000+ Вопросов и ответы с множественным выбором на C++ с пояснениями
▪200 C++ вопросов и ответов на собеседовании
▪24 Essential C++ Interview Questions from Toptal
▪C++ Вопросы для интервью от GeekInterview
▪C++ Programming Q&A and quizzes from computer science portal for geeks
▪C++ Вопросы и ответы по программированию, связанные с такими темами, как концепции ООП, объект и классы, функции, конструкторы и деструкторы, наследование и т.д.
@cpluspluc
▪300+ вопросов с собеседований по C++
▪Публичное System Design Interview на конференции C++ Russia 2022
▪1000+ Вопросов и ответы с множественным выбором на C++ с пояснениями
▪200 C++ вопросов и ответов на собеседовании
▪24 Essential C++ Interview Questions from Toptal
▪C++ Вопросы для интервью от GeekInterview
▪C++ Programming Q&A and quizzes from computer science portal for geeks
▪C++ Вопросы и ответы по программированию, связанные с такими темами, как концепции ООП, объект и классы, функции, конструкторы и деструкторы, наследование и т.д.
@cpluspluc
👍17❤4🔥3
📌 7 бесплатных курсов по С++
1. Введение в программирование (C++) - Stepik (BEG)
2. Основы разработки на С++: белый пояс - Шишков Илья Иванович, Парамонов Евгений Анатольевич, Полднев Антон Вячеславович, Лежанкин Иван Андреевич (Coursera) (INT)
3. Специализация Coding for Everyone: C and C++ - Учитесь кодингу на C и C++. Получите глубокое понимание программирования, научившись писаь код, отлаживать и решать сложные задачи на языках C и C++.
4. Специализация Accelerated Computer Science Fundamentals - Структуры данных и алгоритмы в C++. Изучите основы информатики, реализуя структуры данных на C++.
5. Object-Oriented Data Structures in C++ (Coursera) (INT)
6. Основы С++ и основы UE4 - Начало изучения C++(Udemy)
7. Уроки по С++ - Ravesli (INT)
@cpluspluc
1. Введение в программирование (C++) - Stepik (BEG)
2. Основы разработки на С++: белый пояс - Шишков Илья Иванович, Парамонов Евгений Анатольевич, Полднев Антон Вячеславович, Лежанкин Иван Андреевич (Coursera) (INT)
3. Специализация Coding for Everyone: C and C++ - Учитесь кодингу на C и C++. Получите глубокое понимание программирования, научившись писаь код, отлаживать и решать сложные задачи на языках C и C++.
4. Специализация Accelerated Computer Science Fundamentals - Структуры данных и алгоритмы в C++. Изучите основы информатики, реализуя структуры данных на C++.
5. Object-Oriented Data Structures in C++ (Coursera) (INT)
6. Основы С++ и основы UE4 - Начало изучения C++(Udemy)
7. Уроки по С++ - Ravesli (INT)
@cpluspluc
👍11🔥4🤔2❤1
⚡ Наглядная шпаргалка по основным темам в области Backend-разработки
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@cpluspluc
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@cpluspluc
🔥6❤2👍2🍓1
🛠 Полезные библиотеки С++
Armadillo - быстрая библиотека C++ для линейной алгебры и научных вычислений.
🖥 Github
@cpluspluc
Armadillo - быстрая библиотека C++ для линейной алгебры и научных вычислений.
@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6❤3
💡Задача: "Матрица спирали"
Условие задачи: дан двумерный массив, надо вернуть все его элементы в "спиральном" порядке по часовой стрелке.
Пример:
Ввод: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Вывод: [1,2,3,6,9,8,7,4,5]
Ввод: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Вывод: [1,2,3,4,8,12,11,10,9,5,6,7]
📌Решение
Пишите свое решение в комментариях👇
@cpluspluc
Условие задачи: дан двумерный массив, надо вернуть все его элементы в "спиральном" порядке по часовой стрелке.
Пример:
Ввод: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Вывод: [1,2,3,6,9,8,7,4,5]
Ввод: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Вывод: [1,2,3,4,8,12,11,10,9,5,6,7]
📌Решение
Пишите свое решение в комментариях👇
@cpluspluc
👍9🔥4❤2🤔1
🔥 13 ресурсов для C++ разработчиков , которые помогут закрепить теорию и поупражняться в программировании
1. Hacking C++ - это наглядный справочник с картинками и инфографикой, который содержит подробное руководство по изучению языка для новичков.
2. Академия Яндекса предоставляет бесплатный онлайн-учебник по С++, который рассчитан на новичков, имеющих знания в области информатики и владеющих любым языком программирования на школьном уровне. Хендбук содержит теорию и практические задачи, решения которых проверяются автоматически. Вы можете изучать материал последовательно или выборочно по главам в своем времени.
3. CodeRun - это онлайн-тренажер с каталогом задач для разработчиков, на котором эксперты Яндекса и приглашенные специалисты собрали задачи с различных мероприятий. Задачи разбиты по темам и уровням сложности.
4. The C++ Asynchronous Framework - это современный асинхронный фреймворк с открытым исходным кодом и богатым набором абстракций для быстрого и удобного создания микросервисов, сервисов и утилит.
5. Комьюнити Stack Overflow - это платформа, на которой собрана огромная коллекция вопросов и ответов по программированию, где участники сообщества активно делятся опытом со своими коллегами.
6. Сайт Standard C++ Foundation - это ресурс, на котором публикуются новости, обсуждение стандарта C++ для всех компиляторов и платформ, а также анонсы тематических конференций.
7. Онлайн-документация по С++ - это справочник на английском языке по языкам C, C++ и стандартным библиотекам с подробными примерами, а также адаптированная версия сайта для пользователей, которые предпочитают учиться на русском языке.
8. Гайдлайны С++ Core Guidelines - это open-source проект от создателя С++ Бьярне Страуструпа и эксперта по C++ Герба Саттера. На сайте публикуются рекомендации, которые помогают разобраться с синтаксисом языка и упростить процесс написания кода.
9. Онлайн-компилятор Compiler Explorer - это интерактивный инструмент, который позволяет набирать код и сразу просматривать ассемблерный вывод. Результаты проверки можно поделиться с друзьями и коллегами, отправив им ссылку.
10. #SimpleCode - это YouTube-канал, который познакомит вас с программированием на разных языках, в том числе и на C++. Этот ресурс будет полезен разработчикам с любым бэкграундом.
11. ProgrammingKnowledge - это еще один YouTube-канал для начинающих программистов, на котором можно найти много пошаговых видеоуроков по разным языкам.
12. Codeforces - это платформа для создания, проведения и обсуждения соревнований по программированию с элементами соцсети.
13. Codewars - это огромная подборка задач на более чем 20 языках программирования, где вы можете обсудить задачи с другими игроками и посмотреть альтернативные решения.
👍 Сохраняйте и делитесь с коллегами, чтобы не потерять.
@cpluspluc
1. Hacking C++ - это наглядный справочник с картинками и инфографикой, который содержит подробное руководство по изучению языка для новичков.
2. Академия Яндекса предоставляет бесплатный онлайн-учебник по С++, который рассчитан на новичков, имеющих знания в области информатики и владеющих любым языком программирования на школьном уровне. Хендбук содержит теорию и практические задачи, решения которых проверяются автоматически. Вы можете изучать материал последовательно или выборочно по главам в своем времени.
3. CodeRun - это онлайн-тренажер с каталогом задач для разработчиков, на котором эксперты Яндекса и приглашенные специалисты собрали задачи с различных мероприятий. Задачи разбиты по темам и уровням сложности.
4. The C++ Asynchronous Framework - это современный асинхронный фреймворк с открытым исходным кодом и богатым набором абстракций для быстрого и удобного создания микросервисов, сервисов и утилит.
5. Комьюнити Stack Overflow - это платформа, на которой собрана огромная коллекция вопросов и ответов по программированию, где участники сообщества активно делятся опытом со своими коллегами.
6. Сайт Standard C++ Foundation - это ресурс, на котором публикуются новости, обсуждение стандарта C++ для всех компиляторов и платформ, а также анонсы тематических конференций.
7. Онлайн-документация по С++ - это справочник на английском языке по языкам C, C++ и стандартным библиотекам с подробными примерами, а также адаптированная версия сайта для пользователей, которые предпочитают учиться на русском языке.
8. Гайдлайны С++ Core Guidelines - это open-source проект от создателя С++ Бьярне Страуструпа и эксперта по C++ Герба Саттера. На сайте публикуются рекомендации, которые помогают разобраться с синтаксисом языка и упростить процесс написания кода.
9. Онлайн-компилятор Compiler Explorer - это интерактивный инструмент, который позволяет набирать код и сразу просматривать ассемблерный вывод. Результаты проверки можно поделиться с друзьями и коллегами, отправив им ссылку.
10. #SimpleCode - это YouTube-канал, который познакомит вас с программированием на разных языках, в том числе и на C++. Этот ресурс будет полезен разработчикам с любым бэкграундом.
11. ProgrammingKnowledge - это еще один YouTube-канал для начинающих программистов, на котором можно найти много пошаговых видеоуроков по разным языкам.
12. Codeforces - это платформа для создания, проведения и обсуждения соревнований по программированию с элементами соцсети.
13. Codewars - это огромная подборка задач на более чем 20 языках программирования, где вы можете обсудить задачи с другими игроками и посмотреть альтернативные решения.
👍 Сохраняйте и делитесь с коллегами, чтобы не потерять.
@cpluspluc
👍18❤5🔥3
💡Задача: Игра в прыжки
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
Временное решение: O(N)
Пространственное решение: O(1)
Пишите свое решение в комментариях👇
@cpluspluc
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
class Solution {
public:
bool canJump(vector<int>& nums) {
int n = nums.size();
int maxReach = 0;
for (int i = 0; i < n; i++) {
if (i > maxReach) return false;
maxReach = max(maxReach, i + nums[i]);
}
return true;
}
};
Временное решение: O(N)
Пространственное решение: O(1)
Пишите свое решение в комментариях👇
@cpluspluc
👍7❤3🔥2
Что выведет код ?
@cpluspluc
#include<iostream>
using namespace std;
void swap(int m, int n) {
int x = m;
m = n;
n = x;
}
main() {
int x = 5, y = 3;
swap(x,y);
cout<<x<<" "<<y;
}
@cpluspluc
👍10❤2😁2💩2🔥1
👍25🔥4❤2
🖼 Axodox machinelearning
Чистая реализация на C++ синтеза изображений на основе стабильной диффузии, включая txt2img, img2img и inpainting.
▪Github
▪Onnx
@cpluspluc
Чистая реализация на C++ синтеза изображений на основе стабильной диффузии, включая txt2img, img2img и inpainting.
▪Github
▪Onnx
@cpluspluc
👍11🔥3❤1
🔥 Подборка каналов для разработчиков
#️⃣ c# c++
C# - погружение в C#
@csharp_cplus чат
@csharp_1001_notes - инструменты C#
🖥 Machine learning
ai_ml – крупнейши канал по ии, нейросетям и науке о данных.
datasc - дата сайнс обучение самой востребованной профессии.
@bigdatai - Big Data
@machinelearning_ru – гайды по машинному обучению
@machinelearning_interview – подготовка к собеседованию мл.
@datascienceiot – бесплатные книги ds
@ArtificialIntelligencedl – ИИ
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - вакансии ds, ml
@Machinelearning_Jobs - чат с вакансиями
🖥 SQL базы данных
@sqlhub - Повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
👣 Golang
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@golangnewss - новости go
🖥 Linux
linux - kali linux ос для хакинга
linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
🖥 Python
@pythonl - главный канал самого популярного языка программирования.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
🖥 Javascript / front
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
🖥 Java
@javatg - выучить Java с senior разработчиком на практике
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👷♂️ IT работа
https://t.me/addlist/_zyy_jQ_QUsyM2Vi -ит каналы по яп с вакансиями
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
📓 Книги
https://t.me/addlist/HwywK4fErd8wYzQy - актуальные книги по всем яп
⭐️ Нейронные сети
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 Devops
Devops - канал для DevOps специалистов.
#️⃣ c# c++
C# - погружение в C#
@csharp_cplus чат
@csharp_1001_notes - инструменты C#
ai_ml – крупнейши канал по ии, нейросетям и науке о данных.
datasc - дата сайнс обучение самой востребованной профессии.
@bigdatai - Big Data
@machinelearning_ru – гайды по машинному обучению
@machinelearning_interview – подготовка к собеседованию мл.
@datascienceiot – бесплатные книги ds
@ArtificialIntelligencedl – ИИ
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - вакансии ds, ml
@Machinelearning_Jobs - чат с вакансиями
@sqlhub - Повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@golangnewss - новости go
linux - kali linux ос для хакинга
linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
@pythonl - главный канал самого популярного языка программирования.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
@javatg - выучить Java с senior разработчиком на практике
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👷♂️ IT работа
https://t.me/addlist/_zyy_jQ_QUsyM2Vi -ит каналы по яп с вакансиями
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
📓 Книги
https://t.me/addlist/HwywK4fErd8wYzQy - актуальные книги по всем яп
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
@english_forprogrammers - Английский для программистов
Devops - канал для DevOps специалистов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤2
🧠Задача о максимальной сумме подмассива (алгоритм Кадане) С++
Дан целочисленный массив, найдите в нем непрерывный подмассив с наибольшей суммой.
Например:
Мы можем легко решить эту задачу за линейное время, используя Алгоритм Кадане.
Идея состоит в том, чтобы поддерживать максимальный (с положительной суммой) подмассив, “заканчивающийся” на каждом индексе данного массива. Этот подмассив либо пуст (в этом случае его сумма равна нулю), либо состоит на один элемент больше, чем максимальный подмассив, оканчивающийся на предыдущем индексе.
Алгоритм может быть реализован следующим образом на C++:
результат:
The maximum sum of a contiguous subarray is 6
Временная сложность приведенного выше решения равна O(n) и не требует дополнительного места, где n это размер ввода.
Приведенный выше код не обрабатывает случай, когда все элементы массива отрицательные. Если массив содержит все отрицательные значения, ответом является максимальный элемент. Мы можем легко разместить эту проверку перед тем, как продолжить алгоритм. Реализацию можно увидеть ниже на C++:
Продолжение
@cpluspluc
Дан целочисленный массив, найдите в нем непрерывный подмассив с наибольшей суммой.
Например:
Input: {-2, 1, -3, 4, -1, 2, 1, -5, 4}
Output: Subarray with the largest sum is {4, -1, 2, 1} with sum 6.
Мы можем легко решить эту задачу за линейное время, используя Алгоритм Кадане.
Идея состоит в том, чтобы поддерживать максимальный (с положительной суммой) подмассив, “заканчивающийся” на каждом индексе данного массива. Этот подмассив либо пуст (в этом случае его сумма равна нулю), либо состоит на один элемент больше, чем максимальный подмассив, оканчивающийся на предыдущем индексе.
Алгоритм может быть реализован следующим образом на C++:
#include <iostream>
#include <vector>
using namespace std;
// Функция для нахождения максимальной суммы непрерывного подмассива
// в заданном целочисленном массиве
int kadane(vector<int> const &arr)
{
// сохраняет максимальный суммарный подмассив, найденный на данный момент
int max_so_far = 0;
// сохраняет максимальную сумму подмассива, заканчивающегося на текущей позиции
int max_ending_here = 0;
// обход заданного массива
for (int i = 0; i < arr.size(); i++)
{
// обновить максимальную сумму подмассива, "заканчивающегося" на индексе "i" (путем добавления
// текущий элемент до максимальной суммы, заканчивающейся на предыдущем индексе 'i-1')
max_ending_here = max_ending_here + arr[i];
// если максимальная сумма отрицательна, устанавливаем ее в 0 (что представляет
// пустой подмассив)
max_ending_here = max(max_ending_here, 0);
// обновить результат, если текущая сумма подмассива окажется больше
max_so_far = max(max_so_far, max_ending_here);
}
return max_so_far;
}
int main()
{
vector<int> arr = { -2, 1, -3, 4, -1, 2, 1, -5, 4 };
cout << "The maximum sum of a contiguous subarray is " << kadane(arr);
return 0;
}
результат:
The maximum sum of a contiguous subarray is 6
Временная сложность приведенного выше решения равна O(n) и не требует дополнительного места, где n это размер ввода.
Приведенный выше код не обрабатывает случай, когда все элементы массива отрицательные. Если массив содержит все отрицательные значения, ответом является максимальный элемент. Мы можем легко разместить эту проверку перед тем, как продолжить алгоритм. Реализацию можно увидеть ниже на C++:
Продолжение
@cpluspluc
❤7👍6🔥3🍌1