/
oop_nust_misis
/
subarrays_task-sofaming
Обзор
Документация
Войти
/
oop_nust_misis
/
subarrays_task-sofaming
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
master
src/library.cpp
45 строк
2 KB
OOP Nust MISIS
Initial commit
27 фев 2025, 22:55
27 фев 2025, 22:55
5b4d5f3
Код
Авторство
О чём код?
#include "library.hpp" namespace template_library { int longest_duplicate_subarray(const std::vector<int>& nums) { // Инициализация границ бинарного поиска int low = 1; int high = nums.size() - 1; int max_length = 0; // Бинарный поиск по длине подмассива while (low <= high) { int mid = low + (high - low) / 2; std::unordered_set<std::string> seen_subarrays; bool duplicate_found = false; // Проверка всех подмассивов длины mid for (int i = 0; i <= static_cast<int>(nums.size()) - mid; ++i) { // 1. Создайте строковое представление подмассива // Формат: "элемент1,элемент2,...,элементN" // Пример: для {2,3,4} -> "2,3,4," std::string subarray_str; // 2. Заполните subarray_str значениями подмассива [i..i+mid) // (реализуйте цикл) // 3. Проверьте наличие подмассива в сете if (/* условие наличия в сете */ true) { duplicate_found = true; break; } // 4. Добавьте подмассив в сет } // Обновление границ бинарного поиска if (duplicate_found) { max_length = mid; low = mid + 1; } else { high = mid - 1; } } return max_length; } }