Минимальное из чисел встречающееся в матрица только один раз - 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);
    }
}

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы