Поиск повторного элемента в двумерном массиве - C#
Формулировка задачи:
Здравствуйте!
У меня появился новый вопрос о двумерном массиве - задача состоит в поиске.
Задача: Нужно найти такие элементы в матрице которые не повторяются и вписать их в одномерный массив.
хотелось бы получить алгоритмический подход к решению задачи - примитивный поиск, и установка найденных данных в одномерный массив.
Откровенно говоря я уже замучился )) - пока еще не удалось самостоятельно решить.
мой алгоритм таков:
m[0, 0] - пройдись по всем ячейкам матрицы от m[0, 1] до m[n, n] если не нашел то - arr[0] = m[0, 0]
m[0, 1] - пройдись по всем ячейкам матрицы от m[0, 2] до m[n, n] если не нашел то - arr[1] = m[0, 1]
m[0, 2] - пройдись по всем ячейкам матрицы от m[1, 0] до m[n, n] если не нашел то - arr[2] = m[0, 2]
m[1, 0] - пройдись по всем ячейкам матрицы от m[1, 1] до m[n, n] если не нашел то - arr[3] = m[1, 0]
......... и так до m[n, n - 1]
у меня не получается реализовать такой код, может кто-то сможет помоч?
приложил картинки - для визуализации...
заранее благодарю .
Решение задачи: «Поиск повторного элемента в двумерном массиве»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication198 { internal class Program { static void Main(string[] args) { int[,] matrix = new int[,] { { 7, 5, 1 }, { 2, 3, 7 }, { 4, 2, 3 } }; //создаем результирующий массив List<int> res = new List<int>(); //перебираем все элементы матрицы for(int i=0;i< matrix.GetLength(0);i++) for(int j=0;j< matrix.GetLength(1);j++) { //получаем элемент int v = matrix[i, j]; //считаем сколько таких элементов int count = CalcCount(matrix, v); if (count == 1)//если он ровно один res.Add(v);//добавляем в результирующий список } //выводим результат Console.WriteLine(string.Join(", ", res)); Console.ReadLine(); } //подсчет числа элемнтов, равных данному static int CalcCount(int[,] matrix, int v) { int count = 0; //перебираем все элементы матрицы for(int i=0;i<matrix.GetLength(0);i++) for(int j=0;j<matrix.GetLength(1);j++) if(matrix[i, j] == v)//если элемент равен искомому count++;//увеличиваем счетчик return count; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д