Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Два указателя. Сложно - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как выйти из циклов http://www.cyberforum.ru/cpp-beginners/thread859628.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> #include <Windows.h> #include <iostream> void main(void) { SetConsoleCP(1251);
C++ Почему так? Я вот уже довольно много времени читаю книги и разные коды по программированию, но все так и не понял. Почему хорошие программисты используют запись std:: а не просто в начале написать using... http://www.cyberforum.ru/cpp-beginners/thread859622.html
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой C++
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой. Типо 1/3 = 0,333333333333333333333333333334 P.S. Еще учитель просить использовать массив. Зачем? И...
C++ поиск подстроки в строке
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = "HeLLo" и str2 = "hell" Вопрос: как найти из str1 подстроку str2 без учёта регистра? заранее спасибо
C++ Поиск и замена слов в файле txt http://www.cyberforum.ru/cpp-beginners/thread859590.html
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы
C++ Рекурсивная функция Походу что-то с массивами не то, когда ввожу слишком большое число (15+), то выбивает ошибку с кучами\стеками, которую я не понимаю. using namespace std; void rekursija(long long factorials, int... подробнее

Показать сообщение отдельно
nonedark2008
914 / 653 / 137
Регистрация: 28.07.2012
Сообщений: 1,767
09.05.2013, 18:53
Ternsip, ок, увидел. Все из-за двойного цикла. Я его писал без учета отсортированности массива. А так, подойдет та часть, что вы сами написал... Тогда удастся избежать двойного цикла, а значит и сложность будет nlogn.

Добавлено через 16 минут
А алгоритм достаточно понятен. Мы для каждого префикса в массиве находим префиксы больший либо равный текущему и берем тот, у которого индекс будет самым большим. Если идекс одного префикса больше индекса другого и второй префикс >= первому, то сумма элементов между индексов будет >= 0.
Выбирая префикс с самым большим индексом мы выбираем самую длинную цепочку.
А дальше, просто ижем максимум разности maxInd и ind - это будет длина самой длинной цеопчки, сумма которой больше нуля.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru