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

Поиск последовательности элементов максимальной длины в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа по моделированию http://www.cyberforum.ru/cpp-beginners/thread754177.html
Буду очень признателен кто поможет.:thank_you: 1) Выписать математическую модель, определить состав набора входных параметров и их конкретные числовые значения. 2) Спроектировать пользовательский интерфейс программы моделирования, обращая особое внимание на формы представления результатов. 3) Разработать программу для решения модели с заданной точностью. 4) Произвести отладку и тестирование...
C++ передача параметра привет всем ! вот код #include <iostream> using namespace std; struct book { char title; char authors; char publishing_house; http://www.cyberforum.ru/cpp-beginners/thread754174.html
Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом C++
Задана строка символов. Преобразовать эту строку следующим образом: удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом.
Работа с файлами. Определить порядковый номер байта, начиная с которого располагается первая по алфавиту фамилия... C++
Доброго времени суток, форумчане! Назрела проблема насчет работы с файлами в с++. Задание следующее, в файле записаны фамилии, переносы допускаются, определить порядковый номер байта, начиная с которого располагается первая по алфавиту фамилия. Заменить данную фамилию в исходном файле *, НЕ переписывая этого файла. Я набрасал начальный код, просто для считывания из файла и примерно представляю,...
C++ Матрицы. Найти ее ранг и средние значения по столбцам (дописать код) http://www.cyberforum.ru/cpp-beginners/thread754141.html
пункт 1. С клавиатуры задается матрица размером 5 * 5. Найти ее ранг и средние значения по столбцам. пункт 2. Из найденных закругленных значений создать множество В и найти дополнение к множеству В . пункт 1 я сделал и закруглил найденные значения, но не знаю как создать множество и найти к нему дополнение... помогите кто ни будь =) Добавлено через 6 минут вот сам код...
C++ Засорение памяти Добрый день, так как я еще школьник и знаю очень мало, прошу не ругать. Написанная мной программа если запускать ее снова и снова(поставить goto в конце) начинает жрать все больше и больше оперативной памяти. Как это исправить? Это началось после добавления ф-ии put. Вот код:// Otd.cpp: ���������� ����� ����� // ��� ����������� ����������. // #include "stdafx.h" #include<iostream>... подробнее

Показать сообщение отдельно
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
06.01.2013, 19:15     Поиск последовательности элементов максимальной длины в массиве
Не уверен, что это польностью правильно. Но на моем примере вроде работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
 
using std::cout;
using std::cin;
 
int determineLengthOfSequence(int size1, int* array1, int indexOfStartOfSequenceForArray1, int size2, int* array2, int indexOfStartOfSequenceForArray2)
{
    int lengthOfSequence = 0;
    for (int i = indexOfStartOfSequenceForArray1, j = indexOfStartOfSequenceForArray2; i < size1 && j < size2; i++, j++)
    {
 
        if (array1[i] == array2[j])
        {
            lengthOfSequence++;
        }
        else
        {
            return lengthOfSequence;
        }
    }
    return lengthOfSequence;
}
 
int main(int argc, char* argv[])
{
    const int size1 = 10;
    int array1[size1] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    const int size2 = 15;
    int array2[size2] = {9, 7, 5, 1, 2, 3, 4, 5, 6, 1, 5, 2, 8, 9, 0};
 
    int indexOfStartOfMaxSequenceForArray1 = 0;
    int indexOfStartOfMaxSequenceForArray2 = 0;;
    int lengthOfMaxSequence = 1;
    for (int i = 0; i < size1; i++)
    {
        for (int j = 0; j < size2; j++)
        {
            if (array1[i] == array2[j])
            {
                int temp = determineLengthOfSequence(size1, array1, i, size2, array2, j);
                temp > lengthOfMaxSequence ? lengthOfMaxSequence = temp, indexOfStartOfMaxSequenceForArray1 = i, indexOfStartOfMaxSequenceForArray2 = j : lengthOfMaxSequence = lengthOfMaxSequence;
            }
        }
    }
 
    for (int i = indexOfStartOfMaxSequenceForArray1; i < indexOfStartOfMaxSequenceForArray1 + lengthOfMaxSequence; i++)
    {
        cout << array1[i] << "  ";
    }
    cout << '\n';
 
    return 0;
}
Знаю выглядит ужасно. Строго не судите))
 
Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru