Существует метод под названием gravity(Vector[] vector)
Вектор содержит последовательность чисел. Функция гравитации должна возвращать новый вектор после приложения силы тяжести, который поясняется ниже.Логика: применение силы тяжести к вектору
Предполагают, 0 видны воздух, а 1 кирпич. Когда гравитация применяется, кирпичи должны упасть до самого низкого уровня.
Пусть вектор = [3, 7, 8]
Преобразование это в двоичную мы получаем:
0 0 1 1 для 3
0 1 1 1 для 7
1 0 0 0 для 8
Применение силы тяжести:
0 0 0 0 0 который
0 0 1 1, который является 3
1 1 1 1, который является 15
Таким образом, функция силы тяжести должна возвращаться [0, 3, 15].
Надеюсь, вы, люди, поняли объяснение. Я много пробовал, но я не мог понять логику этого. Одна вещь, которую я наблюдал, заключалась в том, что сумма чисел в векторе до и после приложения силы тяжести остается такой же.
То есть,
3 + 7 + 8 = 18 = 0 + 3 + 15 для вышеуказанного случая.
Будут ли векторы всегда иметь 3 элемента, или вы ищете общее решение? – eigenchris
Общее решение на самом деле. – arunvelsriram
Каков ваш вопрос? нужен алгоритм для функции гравитации? или вы хотите знать, почему сумма остается неизменной? – MrGreen