Перейти к публикации
  • Сейчас на странице   Всего пользователей: 2   (0 пользователей, 2 гостя)

Rooster

Программирование, т. 7

  

536 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

здесь из вима даже не подскажут как выйти, а ты про фронтенд  :avtorklif:

Поделиться сообщением


Ссылка на сообщение

Да хватит про выход из вима

Флешбеки ловлю


Russia.png.ea080e101222d708d08842dae4ccc684.png USA.png.9b863586cd992fb91bf92ed1de03e4cc.png Israel.png.f27d10a4455f05cd161a8c2c52b8b5e1.png

Поделиться сообщением


Ссылка на сообщение

Ку, погромисты.
Подскажите какие-нибудь курсы по PL/SQL.
Основа ввиде знаний по T-SQL имеется.


 

Лучшая в этом мире

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 2 ArrayList одинакового размера [a1,a2,a3...an] [b1,b2,b3...bn]. Нужно в первый записать второй, чтобы

в первом находились элементы именно так, сохраняя порядок.

[a1,b1,a2,b2,a3,b3...an,bn]

Красноречие у меня хреновое, но думаю кто не понял, тот поймет.

 

Особое внимание уделить затратам памяти и сложности.

void merge(ArrayList a, ArrayList b)

Поделиться сообщением


Ссылка на сообщение

Бля какого хуя это дерьмо не работает и все элементы уезжают на дно

.clearfix:after {
	content:'';
	display: table;
	width: 100%;
	clear: both;

  Index написал 06.12.2017 в 22:30:

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 2 ArrayList одинакового размера [a1,a2,a3...an] [b1,b2,b3...bn]. Нужно в первый записать второй, чтобы
в первом находились элементы именно так, сохраняя порядок.
[a1,b1,a2,b2,a3,b3...an,bn]
Красноречие у меня хреновое, но думаю кто не понял, тот поймет.

Особое внимание уделить затратам памяти и сложности.

void merge(ArrayList a, ArrayList b)

Это на позицию джуниора джава?

Поделиться сообщением


Ссылка на сообщение
  Index написал 06.12.2017 в 22:30:

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 2 ArrayList одинакового размера [a1,a2,a3...an] [b1,b2,b3...bn]. Нужно в первый записать второй, чтобы

в первом находились элементы именно так, сохраняя порядок.

[a1,b1,a2,b2,a3,b3...an,bn]

это как, спискам можно менять размер?

Поделиться сообщением


Ссылка на сообщение

 

 

  BrightFury-_- написал 06.12.2017 в 23:50:
Это на позицию джуниора джава?

Ага

 

 

  TheDeadSkin написал 07.12.2017 в 00:31:
это как, спискам можно менять размер?

Все имплементации List подразумевают реализацию методов дополнения коллекции add, addAll и тд.

Если они не декорированы Collections.unmodifiableList(List)

Ну или не гуавашный ImmutableList

 

Мы вам перезвоним.

Поделиться сообщением


Ссылка на сообщение
  Index написал 06.12.2017 в 22:30:

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 2 ArrayList одинакового размера [a1,a2,a3...an] [b1,b2,b3...bn]. Нужно в первый записать второй, чтобы

в первом находились элементы именно так, сохраняя порядок.

[a1,b1,a2,b2,a3,b3...an,bn]

Красноречие у меня хреновое, но думаю кто не понял, тот поймет.

 

Особое внимание уделить затратам памяти и сложности.

void merge(ArrayList a, ArrayList b)
Показать больше  

 

 

<T> void merge(ArrayList<T> a, ArrayList<T> b) {
    if ((long) a.size() + b.size() > Integer.MAX_VALUE - 8) { //max value taken from arraylist source code
        throw new IllegalArgumentException("cannot merge arraylists because they don't fit into single array");
    }

    a.ensureCapacity(a.size() + b.size());
    boolean even = a.size() % 2 == 0;
    int idxMid = a.size() / 2;
    int idx = idxMid;

    if (even) {
        while (idx < b.size()) {
            a.add(a.get(idx));
            a.add(b.get(idx));
            idx++;
        }
    } else {
        boolean first = true;
        while (idx < b.size()) {
            if (!first) {
                a.add(a.get(idx));
            } else {
                first = false;
            }
            a.add(b.get(idx));
            idx++;
        }
        a.set(b.size() - 1, a.get(idxMid));
    }
    idx = idxMid - 1;
    while (idx >= 0) {
        a.set(idx*2, a.get(idx));
        a.set(idx*2 + 1, b.get(idx));
        idx--;
    }
}

ну конечно такие микро оптимизации по памяти имеют слабое отношение к использованию arraylist

если бы были обычные массивы, то было бы намного проще и более реалистично

 

но чисто как головоломка сойдет

Поделиться сообщением


Ссылка на сообщение
(изменено)
  DDamager написал 07.12.2017 в 03:29:

 

<T> void merge(ArrayList<T> a, ArrayList<T> b) {
    if ((long) a.size() + b.size() > Integer.MAX_VALUE - 8) { //max value taken from arraylist source code
        throw new IllegalArgumentException("cannot merge arraylists because they don't fit into single array");
    }

    a.ensureCapacity(a.size() + b.size());
    boolean even = a.size() % 2 == 0;
    int idxMid = a.size() / 2;
    int idx = idxMid;

    if (even) {
        while (idx < b.size()) {
            a.add(a.get(idx));
            a.add(b.get(idx));
            idx++;
        }
    } else {
        boolean first = true;
        while (idx < b.size()) {
            if (!first) {
                a.add(a.get(idx));
            } else {
                first = false;
            }
            a.add(b.get(idx));
            idx++;
        }
        a.set(b.size() - 1, a.get(idxMid));
    }
    idx = idxMid - 1;
    while (idx >= 0) {
        a.set(idx*2, a.get(idx));
        a.set(idx*2 + 1, b.get(idx));
        idx--;
    }
}
ну конечно такие микро оптимизации по памяти имеют слабое отношение к использованию arraylist

если бы были обычные массивы, то было бы намного проще и более реалистично

 

но чисто как головоломка сойдет

 

Показать больше  

 

говнокод из питона

zip(a,b)
profit  :trollface: ну на самом деле тут еще нужно распаковать таплы, но эт фигня
Изменено пользователем SKYnv

 

  Показать содержимое

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

Ну, раз тема о тестовых заданиях, пожалуй тоже поделюсь.
Условие: Есть текстовый формат для хранения произвольных данных, имеющих иерархическую структуру. Синтаксис файла такой:
имяузла – строка из букв, цифр, и символа '', начинающаяся не с цифры
значениеузла – произвольная строка в двойных кавычках, не содержащая символов перевода строки и двойных кавычек
узел ::= имяузла '=' (значение_узла | список )
список = '{' узел [узел ... ] '}'
Пример файла:
shape = {
type = "tetrahedron"
vertices = {
point = { x = "1" y = "0" z = "0" }
point = { x = "0" y = "1" z = "0" }
point = { x = "0" y = "0" z = "1" }
point = { x = "1" y = "1" z = "1" }
}
color = { r = "0xFF" g = "0x00" b = "0x80" alpha = "0x80" }
}
Задача: Написать парсер, который принимает на вход файл, содержащий один корневой узел, и построить в памяти древовидное представление данных. Каждому узлу назначить целочисленный id. Затем слить данные в текстовый файл такой структуры: (id узла, id вышестоящего узла, имя узла, значение в узле). Для узлов-списков вместо значения вывести идентификаторы его непосредственных потомков.
Порядок вывода узлов в выходном файле должен совпадать с порядком во входном файле.
В случае наличия ошибок формата данных, выдавать сообщение вида "Неверный формат данных" и завершать работу.

Поделиться сообщением


Ссылка на сообщение

мне было лень платить пятихатку фрилансеру, потому запилил якобы тестовое задание на пд, тамошние боги разработки по фасту код заебашут, а я хуяк и в продакшен

Поделиться сообщением


Ссылка на сообщение

Зашел в топик, увидел вопрос про использование clearfix'а в декабре 2017, вышел в окно, спайс пд

Ares. понравилось это

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение
  BrightFury-_- написал 06.12.2017 в 23:50:

Бля какого хуя это дерьмо не работает и все элементы уезжают на дно

.clearfix:after {
	content:'';
	display: table;
	width: 100%;
	clear: both;

Ты бы скинул js fiddle. То что ты написал работает, а вот как ты это используешь - хз.

  suez написал 07.12.2017 в 09:01:

Зашел в топик, увидел вопрос про использование clearfix'а в декабре 2017, вышел в окно, спайс пд

Хз, я иногда использую флоаты. Просто лень на инлайнблоках шрифт обнулять, а флексы иногда себя странно ведут.

Поделиться сообщением


Ссылка на сообщение
  DDamager написал 07.12.2017 в 03:29:

 

  Index написал 06.12.2017 в 22:30:
 

 

<T> void merge(ArrayList<T> a, ArrayList<T> b) {
    if ((long) a.size() + b.size() > Integer.MAX_VALUE - 8) { //max value taken from arraylist source code
        throw new IllegalArgumentException("cannot merge arraylists because they don't fit into single array");
    }

    a.ensureCapacity(a.size() + b.size());
    boolean even = a.size() % 2 == 0;
    int idxMid = a.size() / 2;
    int idx = idxMid;

    if (even) {
        while (idx < b.size()) {
            a.add(a.get(idx));
            a.add(b.get(idx));
            idx++;
        }
    } else {
        boolean first = true;
        while (idx < b.size()) {
            if (!first) {
                a.add(a.get(idx));
            } else {
                first = false;
            }
            a.add(b.get(idx));
            idx++;
        }
        a.set(b.size() - 1, a.get(idxMid));
    }
    idx = idxMid - 1;
    while (idx >= 0) {
        a.set(idx*2, a.get(idx));
        a.set(idx*2 + 1, b.get(idx));
        idx--;
    }
}
ну конечно такие микро оптимизации по памяти имеют слабое отношение к использованию arraylist

если бы были обычные массивы, то было бы намного проще и более реалистично

 

но чисто как головоломка сойдет

 

Показать больше  
по условию массивы одинакового размера, так что всё сильно упрощается

так себе головоломка я бы сказал, один цикл


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

^

тебе лишь бы попиздеть

 

чтобы сделать без множественных сдвигов массива нужно как минимум 2 цикла при чем с довольно замысловатой логикой, как у меня в коде собственно


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение
  Index написал 07.12.2017 в 00:51:

 

  BrightFury-_- написал 06.12.2017 в 23:50:
Ага

 

 

  TheDeadSkin написал 07.12.2017 в 00:31:
Все имплементации List подразумевают реализацию методов дополнения коллекции add, addAll и тд.

Если они не декорированы Collections.unmodifiableList(List)

Ну или не гуавашный ImmutableList

 

Мы вам перезвоним.

 

Показать больше  
я знаю что arraylist это умеет

вопрос был в том разрешено ли это

 

просто в таком случае если уже речь идёт об оптимизациях то перед любыми манипуляциями со списком1 нужно сначала сделать

void 	ensureCapacity(int minCapacity)
Increases the capacity of this ArrayList instance, if necessary, to ensure that it can hold at least the number of elements specified by the minimum capacity argument.
с 2*n как размером

 

чтоб списку не надо было внутренний размер менять более одного раза

а дальше как всегда, индекс легко определяет откуда брать ему элемент, сначала заполнить n ... 2n-1, потом пройтись по 1...n-1 с конца

Поделиться сообщением


Ссылка на сообщение

а в джаве есть обратная совместимость? ну типа поч я ставлю себе ждк9 и на ней сборка падает? дженкинс не работает с девяткой?

 

а то шоколадка ебучая на винде ставит сразу девятку, а это бесит блять

Поделиться сообщением


Ссылка на сообщение
  Kant написал 07.12.2017 в 09:24:

по условию массивы одинакового размера, так что всё сильно упрощается

так себе головоломка я бы сказал, один цикл

в один цикл ты это сделаешь только если arraylist-у можно выделить сразу индексное пространство вплоть до 2n, в чём я не уверен, т.к. насколько я понял ensure capacity вроде только внутреннее ресайзит список, а не выделяет индексы

 

а если надо всё делать add-ами, то в 1 цикл анриал

и тогда из-за того что чётные-нечётные имеют разнул логику на индексах n-1 и n, то надо разделять кейсы

Поделиться сообщением


Ссылка на сообщение
  Kant написал 04.12.2017 в 22:08:

 

  DIMAN123456789 написал 04.12.2017 в 21:51:

я конечно не сантехник, но вот тебе похоже пост от сантехника

https://ru.stackoverflow.com/questions/573492/docker-vs-vagrant

 

Если интересно, то я настроил centOS 7 на VBox и внутри развернул Docker. Всё заработало как надо :buba:

  suez написал 05.12.2017 в 09:22:

Дайте угадаю, люди которые решают такие ахуенные задачки, потом лутают эпические 300-800к рубасов в месяц в столь илитарных местах?  :trollface:

Зафиксил :trollface:

Поделиться сообщением


Ссылка на сообщение
  TheDeadSkin написал 07.12.2017 в 09:47:

 

  Kant написал 07.12.2017 в 09:24:
в один цикл ты это сделаешь только если arraylist-у можно выделить сразу индексное пространство вплоть до 2n, в чём я не уверен, т.к. насколько я понял ensure capacity вроде только внутреннее ресайзит список, а не выделяет индексы

 

а если надо всё делать add-ами, то в 1 цикл анриал

и тогда из-за того что чётные-нечётные имеют разнул логику на индексах n-1 и n, то надо разделять кейсы

 

вот именно что нельзя выделить индексное пространство

даже после ensureCapacity ты можешь работать только с индексами i < size, а size увеличивается на 1 после каждой операции add

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...