Мне нужно знать, как печатать перестановку при вводе чего-то типа X = [5 0 1 1 1 2]
, где 5 = n
aka количество целых чисел, следующих в массиве. Результат прост, это будет J = [5 1 2 4 3]
. Это получается путем считывания X с конца, начинающегося с 2. В N (1-5) больше, чем 2. Таким образом, J[5]
теперь равно 3. Затем переместите X в 1 до 2, там будет 1 номер в (1-5) - (3 (получено ранее)) спереди больше, чем J[4]
, поэтому J[4] = 4
. Если это не имеет смысла из-за моего объяснения, это может помочь, когда 3 было удалено, теперь это 1 2 4 5. Итак, если только один элемент больше самого себя, он должен быть элементом 4, потому что только 5 больше. У меня есть это до сих пор, и я запутываю себя над кодированием чего-то, что кажется таким простым.Вывод перестановки при вводе вектора инверсии
public static void main(String[] args) {
int i;
int j;
Scanner input = new Scanner(System.in);
int nums = input.nextInt();
if (nums < 1 || nums > 1000) {
input.close();
} else {
for (int counter = 0; counter < nums; counter++) {
int[] a = new int[nums];
int[] w = new int[nums];
}
}
}
Прошу прощения, я не понимаю вашу логику для этого конкретного уравнения ... Что вы пытаетесь достичь, потому что должен быть лучший способ сделать то, что вам нужно сделать –
input = 5 0 1 1 1 2. 5 = пользовательский ввод для длинного массива. output = 5 1 2 4 3. 2 элемента в {1..5}> вывод [5] = 3. 1 элемент в {1 ... 5} - {3}> выход [4] = 4. etc – suislaluna
Почему у вас есть размер массива в индексе 0 вместо использования array.size? Кроме того, я читал это 3 раза и до сих пор не знаю, что вы пытаетесь сделать. –