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

Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов - C++

Восстановить пароль Регистрация
 
Вадян
1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 42
09.06.2012, 02:58     Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов #1
Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов в этих массивах ( т. е.
количество тех целых t, для которых t = x[i] = y[j] для некоторых i и j). Реализуется в main ().
Подскажите,пожалуйста,как делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 02:58     Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов
Посмотрите здесь:

C++ Что-то не хочет пахать :( | Даны два целочисленных массива К(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L.
C++ Даны два одномерных массива А и B. Найти их скалярное произведение.
C++ Создать два массива. Вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10
Ввести два вектора целых чисел и образовать третий вектор с их общих элементов C++
Найти количество общих элементов в массивах. C++
C++ Даны два массива. Найти среднее арифметическое элементов каждого и сравнить эти значения
C++ Найти количество непрерывно возрастающих серий в массиве
Найти наименьшее количество строго возрастающих участков в массиве C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Integrity93
Сообщений: n/a
09.06.2012, 03:46     Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов #2
Возможно реализация более очевидного алгоритма за О(k*l) вам бы и подошла, но вот на всякий случай линейный алгоритм за О(k + l).

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
#include <iostream>
using namespace std;
 
int main() 
{
    int k,l,answer = 0;
    cin >> k >> l;
    int *x = new int[k], *y = new int[l];
 
    for(int i = 0; i < k; ++i)
        cin >> x[i];
    for(int i = 0; i < l; ++i)
        cin >> y[i];
    
    int i = 0, j = 0;
    for(; i < k; ++i)
    {
        while(x[i] >= y[j])
        {
            if(x[i] == y[j])
                ++answer;
            ++j;
        }
    }
 
    cout << "Answer is: " << answer << endl;
    system("pause");
    return 0;
}
Yandex
Объявления
09.06.2012, 03:46     Даны два возрастающих массива x[k] и y[l]. Найти количество общих элементов
Ответ Создать тему
Опции темы

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