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

Поиск самой длиной серии одинаковых элементов в двумерном массиве - C++

Восстановить пароль Регистрация
 
Bedlam
Сообщений: n/a
25.04.2013, 17:07     Поиск самой длиной серии одинаковых элементов в двумерном массиве #1
Помогите, нужно найти самую длинную серию одинаковых элементов в двумерном массиве.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 17:07     Поиск самой длиной серии одинаковых элементов в двумерном массиве
Посмотрите здесь:

Поиск трех максимальных элементов в двумерном массиве C++
C++ поиск элементов и замена в двумерном массиве
C++ поиск одинаковых элементов в массиве
C++ Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве
Поиск одинаковых элементов в массиве C++
Поиск одинаковых элементов в массиве C++
C++ Поиск элементов строк и столбцов в двумерном массиве
Найти в двумерном массиве строку с наибольшим количеством одинаковых элементов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
25.04.2013, 19:22     Поиск самой длиной серии одинаковых элементов в двумерном массиве #2
Как-то, вот так:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
    int A[5][5] = { { 3, 3, 2, 1, 7 },
                    { 5, 1, 1, 1, 1 },
                    { 1, 1, 7, 8, 8 },
                    { 8, 9, 1, 1, 1 },
                    { 1, 5, 6, 6, 3 } };
 
    for (int n1 = 0; n1 < 5; n1++)
    {
        for (int n2 = 0; n2 < 5; n2++)
            printf("%d ",A[n1][n2]);
 
        printf("\n");
    }
 
    printf("\n");
 
    int max_len = 0, len = 0; bool merge = false;
    int x1 = 0, y1 = 0, x1_max = 0, y1_max = 0; 
    int x2 = 0, y2 = 0, x2_max = 0, y2_max = 0; 
 
    for (int i = 0; i < 5; i++)
        for (int k = 0; k < 5; k++)
        {
            if (merge == false) { len = 0; x1 = i, y1 = k; }
            while ((A[i][k] == A[i][k+1]) && (k < 5)) { k++; len++; }
 
            merge = ((A[i][k] == A[i+1][0]) && (k >= 5)) ? 1 : 0;
            if ((merge == false) && (len > 0)) 
            { 
                x2 = i; y2 = k; 
                if (len > max_len) 
                { 
                    max_len = len; 
                    x1_max = x1; y1_max = y1; 
                    x2_max = x2; y2_max = y2; 
                }
 
                for (int t = y1; t <= y2 && !abs(x1-x2); t++)
                    printf("%d ",A[x1][t]);
                
                for (int t1 = y1; t1 < 5 && abs(x1-x2); t1++)
                    printf("%d ",A[x1][t1]);
                for (int t2 = 0; t2 <= y2 && abs(x1-x2); t2++)
                    printf("%d ",A[x2][t2]);
 
                printf("len = %d\n",len+1);
            }
        }
 
    printf("\n============================================================================\n");
 
    printf("\nMax sequence:\n");
 
    for (int r = y1_max; r <= y2_max && !abs(x1_max-x2_max); r++)
        printf("%d ",A[x1_max][r]);
                
    for (int r1 = y1_max; r1 < 5 && abs(x1_max-x2_max); r1++)
        printf("%d ",A[x1_max][r1]);
    for (int r2 = 0; r2 <= y2_max && abs(x1_max-x2_max); r2++)
        printf("%d ",A[x2_max][r2]);
 
    printf("max_len = %d\n",max_len+1);
 
    _getch();
 
    return 0;
}
http://codepad.org/bBPLa2ks
Миниатюры
Поиск самой длиной серии одинаковых элементов в двумерном массиве  
Yandex
Объявления
25.04.2013, 19:22     Поиск самой длиной серии одинаковых элементов в двумерном массиве
Ответ Создать тему
Опции темы

Текущее время: 23:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru