Изменения

Перейти к: навигация, поиск

Получение следующего объекта

29 байт добавлено, 17:51, 17 ноября 2013
м
Нет описания правки
* Вместо 0 записываем 1
* Дописываем минимально возможный хвост из нулей
<code> '''for ''' i = n '''downto ''' 1 '''if ''' a[i] == 0 a[i] = 1 '''for ''' j = i + 1 to n a[j] = 0 '''break'''</code>
=== Пример работы ===
{| class="wikitable" border = 1
* Меняем его с минимальным элементом, большим нашего, стоящим правее
* Перевернем правую часть
<code> '''for ''' i = n - 1 '''downto ''' 1 '''if ''' a[i] < a[i + 1] // a[j] = min {a[j] > a[i], где j > i} swap(a[i], a[j]) reverse(a[i + 1] .. a[n]) '''break'''</code>
=== Пример работы ===
{| class="wikitable" border = 1
добавляем
'''break'''
'''for''' j = a[i].size() - 1 '''downto''' 0
'''if''' можем заменить элемент, другим элементом из массива used
заменяем
fl = true
'''break'''
used.add(a[i][j]) //удаляем элемент и добавляем его в массив
'''if''' (fl) '''break'''
//далее выведем все получившиеся подмножества sort(used); '''for''' i = 0 '''to''' used.size() - 1 '''println(used[i])''' //выводим лексикографически минимальных хвост
</code>

Навигация