JavaRush /Java блог /Архив info.javarush /Кухня(); Второй сезон - 71/79
terranum
28 уровень
Milan

Кухня(); Второй сезон - 71/79

Статья из группы Архив info.javarush
Кухня(); Второй сезон - 71/79 - 1 Всем привет! А вот и кухня! Во втором сезон, в отличии от первого, задач будет на порядок меньше. Несмотря на это, сезон будет не менее интересным! Превью как бы намекает что речь пойдет о сортировке. Если вы еще не слышали про кухню - это не беда. Гляньте первый урок и все поймете. Там вы ознакомитесь и с правилами. С нетерпением жду ваших изящных решений! И да будут они читабельны! Have fun! :) 71. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элементами первого, не используя дополнительный массив.
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Sdu Уровень 17
23 декабря 2014
Ну если один можно, то решение «в лоб» совсем незамысловатое ))) как-то так:
public class Main {

    public static void main(String[] args) {
	// write your code here
        int[] a = new int[]{1, 2, 3, 4, 5, 6};
        int[] b = new int[]{7, 8, 9, 0};
        int[] c = concat(a, b, 2);
        for (int i : c) {
            System.out.print(i + " ");
        }
    }

    private static int[] concat(int[] a, int[] b, int i) {
        int aLen = a.length;
        int bLen = b.length;
        int[] c = new int[aLen + bLen];
        System.arraycopy(a, 0, c, 0, aLen);
        System.arraycopy(b, 0, c, aLen, bLen);
        int shift;
        for (int index = 0; index < bLen; index++) {
            shift = index + i;
            int tmp = c[shift];
            c[shift] = c[shift+bLen];
            c[shift + bLen] = tmp;
        }
        return c;
    }
}


Результат:
"C:\Program Files\Java\jdk1.8.0_11\bin\java"
1 2 7 8 9 0 3 4 5 6 
Process finished with exit code 0
Airon Уровень 34
12 ноября 2014
Ну а решение(не используя дополнительный массив) в Java есть?