Найти элементы массива 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, то выводим
- }
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д