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

Rooster

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

  

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

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

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

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

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


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

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

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


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

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


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

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


 

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

4cd5e7dcf57746f698f023a78718.jpg

 

 

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

 

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

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


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

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 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;

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

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

void merge(ArrayList a, ArrayList b)

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

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


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

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

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

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

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

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


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

 

 

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

Ага

 

 

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

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

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

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

 

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

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


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

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 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

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

 

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

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


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

 

<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.

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


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

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

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

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

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

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

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


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

 

Вот кстати тестовое задание которое у меня однажды было. Реализовать функццию принимающую 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

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

 

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

 

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

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


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

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


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

^

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

 

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


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

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


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

 

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

Ага

 

 

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

Все имплементации 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 и на ней сборка падает? дженкинс не работает с девяткой?

 

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

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


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

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

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

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

 

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

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

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


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

 

 

 

Вечер в хату, господа.

Сил нет думать, если вкратце: нужно развернуть линуху с докером-шмокером. Я так понял проще всего вагрантом воспользоваться. Нужна какая-нибудь васян-сборка с генерик-линухой :trollface:

Я тут нарыл пару кандидатов, это ваще то что мне нужно? :hmpalm:

https://github.com/coreos/coreos-vagrant

https://github.com/tknerr/vagrant-docker-baseimages

https://github.com/reinblau/vagrant-docker

https://github.com/toricls/vagrant-docker-compose-example

К сожалению я нихуя в этом не шарю, а сделать нужно до завтра :blnate: Как этой параше можно за день обучиться? :hmm:

любая статья в гугле?

http://linux-notes.org/ustanovka-docker-na-debian-ubuntu/

 

и хз что там вагрант забыл. Это же вроде просто обертка над любыми виртуализаторами

 

Ну типа умные дядьки все через вагрант делают.. Я так понимаю дженерик линуха + докер-шмокер и снятие снэпшота вполне мне хватит?

 

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

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

 

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

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

Зафиксил :trollface:

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


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

 

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

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

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

 

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

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

 

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

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

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


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

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