Найти элементы массива A в одном экземпляре, которые есть в массиве B в нескольких экземплярах - C#
Формулировка задачи:
Добрый час суток. Есть такая задача: У нас массивы A и B вводятся с клавиатуры. Нужно найти элементы массива A в одном экземпляре,которые есть в массиве B в нескольких экземплярах. Подскажите пожалуйста как реализовать это? С линейным,бинарным поиском. Сам алгоритм интересует,немного туплю.
Решение задачи: «Найти элементы массива A в одном экземпляре, которые есть в массиве B в нескольких экземплярах»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Console.Write("Длина первого массива: "); int n = int.Parse(Console.ReadLine());
Console.Write("Длина второго массива: "); int m = int.Parse(Console.ReadLine());
Console.Write("Введите первый массив: ");
int[] a = Enumerable.Range(0, n).Select(v => int.Parse(Console.ReadLine())).ToArray();//заполняем первый массив
Console.Write("Введите второй массив: ");
int[] b = Enumerable.Range(0, m).Select(v => int.Parse(Console.ReadLine())).ToArray();//заполняем второй массив
for (int i = 0; i < n; i++) //проходим первый массив
{
bool bb = true;
for (int j = 0; j < n; j++) //проходим его второй раз
if (a[j] == a[i] && i != j) bb = false;//если элемент встречается второй раз, то false
if (bb) //если true
{
int count = 0;
for (int j = 0; j < m; j++)
if (b[j] == a[i]) count++; //считаем совпадения
if (count > 1) Console.Write(a[i] + " "); //если больше 1, то выводим
}
}
}
}
}