Посмотрите задачу на С++

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

биг спс!))
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

Привет всем! У меня новая проблемка, чет я "не догоняю"...))
Мне бы алгоритм... программу я сам составлю...
Задание: Найти минимальный из неповторяющихся элементов двумерного массива.

Массив двумерный я написал в программе... я спокойно могу написать нахождение минимального элемента в массиве, НО неповторяющихся элементов - непонимаю как написать...! Есть у меня идеи, их можно реализовать, но они "тугоемкие"...

Пожалуйста... подскажите способы, как можно найти минимальный из неповторяющихся элементов двумерного массива...
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

отсортировать попробуйте, если следующий не равен предыдущему, то предыдущий это и есть минимальный из неповторяющихся
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

у меня тоже была мысль отсортировать.... щас реализую... спс
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

а что если следующий элемент равен предыдущему элементу, то как быть?

какая-то путаница получается....!))
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Anton_XXX писал(а):а что если следующий элемент равен предыдущему элементу, то как быть?

какая-то путаница получается....!))
перейти к следующему элементу для анализа.
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

щас попробую...
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

нет... это все не то...
вот что я сделал:

for (i=0; i<5; i++)
for (j=0; j<5; j++)
{
if ((min>mas[j]) && (min!=mas[j])) min=mas[j];
if (min==mas[j]) min=mas[j+1];
}
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

если крайние элементы исключить, т.е. проверить отдельно, то остальное просто

Код: Выделить всё

if ( (mas[i-1]<mas[i]) && (mas[i]<mas[i+1])) 
это нужный элемент
соответственно можно расширить на двумерный
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

Чет я непойму...

if ( (mas[i-1]<mas) && (mas<mas[i+1]))

например, дан одномерный массив: 5 0 1 7 0 6 1 0 5
по идеи, минимальный из неповторяющихся элементов = 6
а твое условие выдает элемент = 1

элемент "1" в этом массиве встречается 2 раза...!

Я думаю, надо вначале найти все равные элементы и записать их в дополнительную строку или столбец, а потом находить уже минимальный из неповторяющихся этих элементов...
Ответить