0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 61
1

Проверить, можно ли путём вычёркивания элементов из упорядоченного массива А получить Б

20.02.2016, 13:36. Показов 396. Ответов 5
Метки нет (Все метки)

Есть два массива отсортированных массива. Нужно проверить можно ли путём вычёркивания элементов из А получить Б. СЛожность же алгоритма должна быть С*(m+n) где m и n размеры массивов.
Написал что-то такое
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
int min3(int a, int b)
{
    if ((a <= b)) return 1;
    if ((b <= a)) return 2;
    
}
 
void main()
{
 
    int i1, i2, n1, n2, k;
    int A1[8] = { 2,4,6,90,95,100,106};
    int A2[4] = { 1, 2, 4, 106 };
    
    vector<int> a;
    n1 = 8; n2 = 4;
        i1 = 0; i2 = 0;
 
    int temp = 0;
    while (1)
    {
        if ((i1 > n1) || (i2 > n1)) break;
        if ((A1[i1] == A2[i2]))
        {
            cout << A1[i1] << " similar" << endl;
 
            
            //break;
        }
 
        k = min3(A1[i1], A2[i2]);
        if (k == 1) i1++;
        if (k == 2) i2++;
        
    }
    cout << endl;
 
    
}
этот код выводит общие элементы двух массивов. но как сделать проверку догадаться не могу. думал использовать переменную типа bool но что-то не вышло. Подскажите пжлста.=)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2016, 13:36
Ответы с готовыми решениями:

Количество способов преобразования строки путём вычёркивания символов
Есть две строки Х и У, в которых содержатся только буквы латинского алфавита и цифры (длинны не...

Можно ли путём поворота элементов матрицы А по часовой стрелке на 90 градусов получить совмещение матриц А и В
Пожалуйста помогите!!!!!!!!!!!!!!!! Можно ли путём поворота элементов матрицы А по часовой стрелке...

Проверить, можно ли, меняя местами элементы массива А получить, массив В
Заданы два одномерных массива А и В размерности И. Сост прог-му проверяющую можно ли меняя местами...

Проверить, можно ли, меняя элементы одномерного массива A, получить одномерный массив B
Составьте программу, проверяющую, можно ли, меняя элементы одномерного массива A, получить...

5
55 / 55 / 12
Регистрация: 01.12.2012
Сообщений: 456
20.02.2016, 14:49 2
Находим последовательно в A элементы из B в 1 проход по обоим массивам (названия подставить):
C++
1
2
3
4
int j= 0;
for(int i= 0; i<lenghtB; i++)
  while((j<lengthA) && (A[j] != B[i])) j++;
if(j < lengthA) cout<<"yes!";
1
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 61
20.02.2016, 15:03  [ТС] 3
Спасибо конечно, но разве здесь не сложность m*n так как тут в цикле for вложенный while. Или я не прав?
0
55 / 55 / 12
Регистрация: 01.12.2012
Сообщений: 456
20.02.2016, 15:06 4
В данном случае Вы ошибаетесь - обратить внимание на изменение индекса j.
0
323 / 49 / 28
Регистрация: 07.09.2014
Сообщений: 217
20.02.2016, 15:09 5
alexandro12, так у вас здесь for дает один проход по массиву A, а while один проход по циклу В. Посмотрите - внутри цикла for не происходит сброса значений j.
1
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 61
20.02.2016, 16:54  [ТС] 6
хорошо, спасибо большое =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2016, 16:54
Помогаю со студенческими работами здесь

Можно ли из исходной строки путём перестановки литер получить вторую строку?
3.Пусть даны две строки str1 и str2. Необходимо выяснить, можно ли из str1 путём перестановки литер...

Проверить, можно ли, меняя местами элементы одномерного массива А, получить одномерный массив В.
Заданы два одномерных массива А и В размерности N. Составить программу, проверяющую, можно ли,...

Проверить, можно ли, меняя местами элементы одномерного массива А получить одномерный массив В
заданы 2 одномерных массива А и В , размерности N. Составить программу, проверяющую,можно ли, меняя...

Проверить, можно ли, меняя местами элементы одномерного массива А, получить одномерный массив В
Заданы два одномерных массива А и В размерности N. Составить программу, проверяющую, можно ли,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru