Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
alexandro12
0 / 0 / 6
Регистрация: 25.02.2015
Сообщений: 60
#1

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

20.02.2016, 13:36. Просмотров 200. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2016, 13:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверить, можно ли путём вычёркивания элементов из упорядоченного массива А получить Б (C++):

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

Подсчитать количество различных чисел среди элементов упорядоченного массива
Подскажите, как подсчитать кол-во различных чисел сред элементов массива. Т.е....

Найти количество различных чисел среди элементов упорядоченного массива
Дан, упорядоченный массив по возрастанию. Найти кол-во различных числе среди...

Получить новую матрицу путём сложения всех элементов заданной матрицы (язык C)
Получить новую матрицу S(N,M) путём сложения всех элементов заданной матрицы...

Получить новую матрицу, путём деления всех элементов исходной матрицы на ее максимальный по модулю элемент
С матрицы А (n, n) (n &lt;= 6) получить новую матрицу В (n, n) путем деления всех...

Получить новую матрицу путём деления всех элементов данной матрицы на наибольший по модулю элемент
Дана действительная матрица размером n*m. Получить новую матрицу путём деления...

5
MihalNik
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
alexandro12
0 / 0 / 6
Регистрация: 25.02.2015
Сообщений: 60
20.02.2016, 15:03  [ТС] #3
Спасибо конечно, но разве здесь не сложность m*n так как тут в цикле for вложенный while. Или я не прав?
0
MihalNik
55 / 55 / 12
Регистрация: 01.12.2012
Сообщений: 456
20.02.2016, 15:06 #4
В данном случае Вы ошибаетесь - обратить внимание на изменение индекса j.
0
mihey1993
322 / 48 / 28
Регистрация: 07.09.2014
Сообщений: 217
20.02.2016, 15:09 #5
alexandro12, так у вас здесь for дает один проход по массиву A, а while один проход по циклу В. Посмотрите - внутри цикла for не происходит сброса значений j.
1
alexandro12
0 / 0 / 6
Регистрация: 25.02.2015
Сообщений: 60
20.02.2016, 16:54  [ТС] #6
хорошо, спасибо большое =)
0
20.02.2016, 16:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2016, 16:54
Привет! Вот еще темы с решениями:

Получить новую матрицу путём деления всех элементов заданной матрицы на наибольший по модулю элемент
знаю что уже много где написано про это, но никак не могу докрутить. есть такой...

Дана прямоугольная матрица. Получить новую матрицу путём деления всех элементов исходной матрицей на её максимальный по модулю элемент.
7.9.2. Помогите, пожалуйста, решить задачу в С++. Дана прямоугольная...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru