Минимальное из чисел встречающееся в матрица только один раз - C#
Формулировка задачи:
Дана целочисленная квадратная матрица, определить минимальное из встречающихся чисел в матрице только один раз.
Я бы перевел все в вектор , отсортировал и сравнивал бы соседние числа , это было бы просто. Но так нельзя и я вынужден гипнотизировать visual. Мне бы направление куда копать, буду очень признателен.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int n, min=10007;
bool odin_raz = true;
Console.Write("Введите n: ");
n = int.Parse(Console.ReadLine());
int[,] mass = new int[n, n];
int[,] mass1 = new int[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("mass[" + i + "," + j + "]: ");
mass[i, j] = int.Parse(Console.ReadLine());
mass1[i, j] = mass[i, j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
if (mass[i, k] < min)
min = mass[i, k];
}
}
}
Console.ReadKey();
}
}
}Решение задачи: «Минимальное из чисел встречающееся в матрица только один раз»
textual
Листинг программы
using static System.Console;
static class test
{
static bool MatrContainsMoreThanOne(this int[,] m,int num)
{
bool b = false;
foreach (int i in m)
if (i == num)
if (b) return true;
else b = true;
return false;
}
static void Main()
{
Write("n : ");
int n = int.Parse(ReadLine());
WriteLine("filling : ");
int[,] m = new int[n, n];
for (int i = 0; i < n;i++)
{
for(int j = 0; j < n; j++)
{
Write($"[{i},{j}] = ");
m[i, j] = int.Parse(ReadLine());
}
}
int? min = null;
WriteLine("content : ");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Write(m[i, j] + "\t");
if (!min.HasValue || min > m[i, j])
if(!m.MatrContainsMoreThanOne(m[i, j])) min = m[i, j];
}
WriteLine();
}
if (min.HasValue) WriteLine("unique min : " + min);
else WriteLine("no results...");
ReadKey(true);
}
}