|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.05.2012, 18:02 | #1 |
Пользователь
Регистрация: 23.11.2011
Сообщений: 19
|
Является ли массив перестановкой?
Дан целочисленный массив размера N. Если он является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0, в противном случае вывесте номер первого недопустимого элемента.
Вот написал код, отсортировав массив и проверив является ли он перестановкой, не знаю как теперь вывести номер недопустимого элемента из неотсортированого массива...Как это реализовать? Код:
Последний раз редактировалось xEk; 10.05.2012 в 18:06. |
10.05.2012, 20:47 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Первый недопустимый элемент - это, скорее всего, тот, который повторяется.
1. Сортируем КОПИЮ исходного массива. 2. Заводим 3-й массив и собираем в него все повторяющиеся числа. 3. Заводим булев массив по длине равный 3-му. Инициализируем FALSE. 4. Проходим по исходному массиву: - если встречаем число из 3-го массива (это первое вхождение), переводим соответствующий логический элемент в TRUE, - если встречаем число из 3-го массива, причем соотв.лог.элемент = TRUE, - это искомый элемент (повтор ранее встретившегося. Пока писал, пришла в голову другая идея: 1. Заводим логический массив равный исходному, инициализируем FALSE. 2. Пробегаем по исходному массиву, переводя в TRUE элемент с индексом равным очередному элементу массиву. 3. Как только встретим в нужной ячейке лог.массива TRUE - хначит, повтор, т.е. нашли недопустимый элемент. |
10.05.2012, 22:12 | #3 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
В дополнение к последнему способу s-andriano:
Если элемент больше N или меньше 1, то тоже недопустимый (сразу выход, а не запись в массив).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
10.05.2012, 22:32 | #4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование просто перестановкой | SnowSin | Помощь студентам | 2 | 08.10.2015 20:47 |
Listbox с перестановкой | Jl6owa | Компоненты Delphi | 0 | 06.01.2012 18:04 |
Задачка с перестановкой значений в двумерном масиве | sekator | Visual C++ | 2 | 28.07.2010 14:33 |
шифрование перестановкой | Ketu | Помощь студентам | 1 | 28.03.2009 12:30 |
является ли перестановкой массив размера M? | playboy | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 23.11.2008 12:03 |