
Dmitry
25.02.2017
19:08:25
Вот ты получаешь на n/2 итерации число n+2
Куда его ставить?

Aldar
25.02.2017
19:08:56
на первой итерации заменить n+1 и n+ 2 на -1

Marat
25.02.2017
19:08:56
Нет в тот же самый. Ща попробую накидать на js, может правда туплю

Can
25.02.2017
19:09:18
Но это доп память

Google

Can
25.02.2017
19:09:18
А если в этот же
То надо сделать что то с числом
Которое сейчас на 100 месте стоит

Aldar
25.02.2017
19:09:25
если n+1 нету, то оно одно из искомых и дальше все очевидно

Dmitry
25.02.2017
19:09:25
Чисто пример
2 0 4
Сперва ты берёшь 2 и ставишь его вместо 4
Потом ты берёшь 4 и че?
Ответ в задаче - 1,3

Aldar
25.02.2017
19:11:07
if(a[i] != i) {
swap(a[i], a[a[i]])
}
и так два раза пройтись
ну еще игнорировать -1
в итоге на месте чисел со значением -1 получим искомые
допустим массив размера 5, в нем есть число 7

Google

Aldar
25.02.2017
19:13:15
ищем 6 и 7 заменяем их на -1
если нет 6 то оно одно из искомых
ну и дальше два раза проходим и ставим числа на свои места
там где будут числа со значением -1 - индексы являются ответом

Dmitry
25.02.2017
19:15:33
Так как ты заснуешь число если он за границей массива?

Aldar
25.02.2017
19:16:31
оно не будет за границей массива
потому что 7 и 6 там нет

Dmitry
25.02.2017
19:16:47
Вообще говоря такое работает

Aldar
25.02.2017
19:16:56
ну и на -1 проверять
не забывать

Dmitry
25.02.2017
19:17:02
Только надо 3 прохода и 3 доп переменные

Aldar
25.02.2017
19:17:16
да, но время линейное и память константная

Евгений
25.02.2017
19:18:38
адепты Plug, кто-нибудь вкручивал Ueberauth?

Dmitry
25.02.2017
19:18:45
2 0 4 -1 -1
4 0 2 -1 -1
0 4 2 -1 -1
0 4 2 -1 -1
Второй
0 4 2 -1 -1
0 -1 2 -1 4
0 -1 2 -1 4
И третий чтобы подобрать индексы

Aldar
25.02.2017
19:21:13
только недостаток в том что алгоритм сложнее если выкинуть больше 2х чисел

Can
25.02.2017
19:21:29
Хм
Что то не понел
Вроде дельно

Dmitry
25.02.2017
19:21:49
Ща сделаю питон

Can
25.02.2017
19:21:50
Но что то здесь не так)

Google

Dmitry
25.02.2017
19:22:11
И потестим

Aldar
25.02.2017
19:22:14
да все так
суть в том что для чисел не больше n мы знаем их позицию в отсортированном массиве
а если число больше n, то нам надо его как то обработать
поэтому и сортировка линейная

anton
25.02.2017
19:26:06
а хотите еще больше усложню? :)
N может быть больше чем int.maxValue

Aldar
25.02.2017
19:26:36
у нас пистон)

Alexey
25.02.2017
19:26:47
есть числа от 1 до N. два выкинули, все перемешали. память пользовать нельзя, решить за N/1000

Dmitry
25.02.2017
19:28:37

Aldar
25.02.2017
19:29:43
N/1000 это что?

Dmitry
25.02.2017
19:29:43
def solve, do: {0,1}

Alexey
25.02.2017
19:29:49
время решения должно быть кратно 5min*n где n множество чисел не упорядоченных по не возрастанию, натуральных чисел
задача не ясная какая-то

Dmitry
25.02.2017
19:30:48
Короче в падлу петон, завтра сделаю

Alexey
25.02.2017
19:30:56
что можно, что нельзя. зачем всё это, все равно все умрем
на фоне всего этого, почему-то есть вот язык программирования, но в нем что-то нельзя

anton
25.02.2017
19:32:03
есть числа от 1 до N. два выкинули. вобщем объяснять некогда. дедлайн вчера.

Dmitry
25.02.2017
19:33:36
Есть число от 1 до N. Дедлайн выкинули, два числа перемешали. Массив вчера

Alexey
25.02.2017
19:34:43
ну просто я пытаюсь представить эту ситуацию. приходишь такой на завод. тебя срочно вызывает директор производство. пара мастеров пришло. продажники прискакали. отгрузка по контракту там горит. и тебе так говорят "нам срочно вот надо найти два числа из множества. но только надо чтоб за константную память"

Google

Dmitry
25.02.2017
19:35:49

Aldar
25.02.2017
19:35:53
нынче в индустрии принято подобные задачи на собесах задавать

Dmitry
25.02.2017
19:35:56
Леща(

Alexey
25.02.2017
19:35:57
ты такой, ну может как-то мы как-то потратим всетаки память и решим задачу? нет! пы приняли санкции против производителей оперативной памяти и не имеем права использовать ОЗУ. иначе нас всех закроют
если ты пришел собеседовать компанию и они тебе начинают такие вопросы задавать, просто говоришь, что они тебе не подходят

Aldar
25.02.2017
19:36:51
ну когда у тебя миллионы серверов, то код производительнее на 1% экономит миллионы долларов - то нужны разработчики которые задрачивают подобные задачи

Alexey
25.02.2017
19:37:31
тут где-то статья была про вреждевременную кхм
оптимизацию

Dmitry
25.02.2017
19:38:18
Postgres летает, nginx отдрочен как хрен, а твой ActiveRecord делает select * а потом фильтрует(((
На каждую оптимизацию в 1% найдётся свой Джуниор

Admin
ERROR: S client not available

anton
25.02.2017
19:39:54
за константную память
и еще памяти дают каких-нибудь 500Кб
и ты думаешь - фублять, жлобы чёртовы (у самого то макбук и 16 гиг ОЗУ) и посылаешь их подальше.

Alexey
25.02.2017
19:40:08
подтверждаю. Mysql 10 лет назат на сраном селероне, с 256 памяти, при правильно расставленых индексах, чудесно решал бизнес задачу, где надо было выбирать из 10М записей 250 штук. и нормально укладывался в 0.01с, что даже на глаз затупа было не заметна. и смешно. было на дельфях. и до сих пор работает на реальном производстве

Aldar
25.02.2017
19:40:16
поэтому яндекс и гугл юзают цпп и требуют знания алгоритмов

Alexey
25.02.2017
19:40:21
а вот такие сферические задачи - мне не ясно. что там за последовательность такая и для чего
любой уважающий себя программист знает классичесие алгоритмы. а уж про тех, у кого опыт всяких там кружков и ВО, говорить не буду. вдруг обижу кого

Aldar
25.02.2017
19:42:40
знания алгоритмов именно в контексте таких сферических задачек

Alexey
25.02.2017
19:43:09
я не знаю, как там в гуглах. я по жизни на производствах работал. а там базы данных. либо производственные, либо булгактерские. и там нет никакого смысла выдумывать какую-то хрень. самое главное освоить SQL

anton
25.02.2017
19:43:09
а нафига оно надо-то? задачи на практике чаще всего значительно отличаются от этих сферических ;)

Aldar
25.02.2017
19:43:22
какому нить стартапу конечно это не нужно, или в вебчике

Google

Alexey
25.02.2017
19:43:56
а если что-то очень серьезное, типа сборки изделий. которые имеют иерархии типа 30х уровней. то там как раз знания алгоритмов и вылезают. кто их не знает, тот и не может написать

anton
25.02.2017
19:44:08

Alexey
25.02.2017
19:44:10
сам наблюдал такое. ну вот не умеет человек рекурсию. и все.
сборку не сделает

anton
25.02.2017
19:44:41
у гугла раньше хорошая пасхалочка была.. жаль убрали

Alexey
25.02.2017
19:45:47
а кому-то не надо
я тут на хабре статью запилил. где на эликсире пару функций рекурсивных написал

Dmitry
25.02.2017
19:46:13

Alexey
25.02.2017
19:46:36
ну там это классика, как бы. но меня засрали. я оказался не прав. надо было не мозгами пользоваться, а гуглом. потому что либа такая есть, которая все это делает

anton
25.02.2017
19:46:37

Alexey
25.02.2017
19:46:51
+1

Dmitry
25.02.2017
19:47:23
https://github.com/rust-lang/rust/issues/217

Alexey
25.02.2017
19:47:58
и я вот даже не знаю, стоит ли обижаться. ведь велосипеды сейчас писать не надо. а надо решать задачи. к тому же либа готовая есть.

anton
25.02.2017
19:48:30
у нас как-то на работу взяли олимпиадника одного, только он месяц мычал и не мог раздуплить core data с блютусом под ios

Viktor
25.02.2017
19:51:33
бывает и такое

Alexey
25.02.2017
19:52:11
воот. есть о чем задуматься! и ты такой бамсь, и решил производственный вопрос, свел все данные в отчет. руководство получило результаты. как на приборной доске в машине. данные для принятия решения. и все счастливы. а на дельфи ты там решил или на Go, или на FoxPro - это все вообще побоку
какой там у тебя алгоритм. предполагаю, что знания библиотек тут быстрее поможет
так что решать от 1 до N это все как бы....

anton
25.02.2017
19:53:02
не, решать то прикольно, для себя, мозги потренировать
а вот на собеседовании такое спрашивать - нафиг надо