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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexandro12
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 60
#1

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

20.02.2016, 13:36. Просмотров 184. Ответов 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++):

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

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

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

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

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

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

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

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

Количество способов преобразования строки путём вычёркивания символов - C#
Есть две строки Х и У, в которых содержатся только буквы латинского алфавита и цифры (длинны не превышают 30 символов).Сначала вводится 1-я...

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

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


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

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

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