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

Rooster

Программирование[9]

Перепись  

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

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

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

3 года не могу в сишарп вкатиться

очень хочу но мне так лень

 

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


Ссылка на сообщение
(изменено)
skyrimmag написал 14 часов назад:

У кого есть опыт решения задач на codeforces и вообще помогает этот опыт на собесах ?

Для собеседований лучше лееткод/кодварс, кодефорсес в основном ориентирован на компетитив программирование (начиная с ~1700 рейтинга второго дивизиона задачи реально сложные, но интересные)


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

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


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

Чуваки, в джаве же нельзя сортировать мапу и по ключам и по велью одновременно? чтобы кей следующего ентри был равен велью текущего, типа такого:
кей1 : велью1

велью1 == кей2 : велью2

велью2 == кей3 : велью3

и тд.

 

а то я там такого добра накодил с 2 листами, сетом и рекурсией :onneponimaet:

В принципе по ощущениям решение нормальное, но интересно есть ли вариант пооптимальнее

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


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

открою секрет

обычную мапу в принципе нельзя сортировать - элементы не имеют понятия порядка. есть правда линкед хешмап

но вообще понятие "сортировать мапу" не имеет смысла.

 

если ты говоришь о задаче сортировки набора кортежей 2х элементов с условными именами (key, value), то

вообще похоже на топологическую сортировку где пара кей-велью это ребро графа

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

 

 


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

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


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

чаво блять

мапы в принципе не сортированы, они на хэшах. есть мапы что просто хранят отдельно последовательность вставки чтобы вернуть тебе потом в том же порядке, есть сортедмапы которые по ключу сортируют

плюс в сортировке нужно не равенство, а порядок, у тебя же написано ==, а значит нахуя тебе мапа вообще, сделай себе массив из кей1, велью1, велью2 и до бесконечности, или в сет, если надо проверять существование. зачем мапа вообще, если у тебя ключ/значение все дублированы


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

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


Ссылка на сообщение
RaptureOfGhost написал 32 минуты назад:
skyrimmag написал 14 часов назад:

У кого есть опыт решения задач на codeforces и вообще помогает этот опыт на собесах ?

Для собеседований лучше лееткод/кодварс, кодефорсес в основном ориентирован на компетитив программирование (начиная с ~1700 рейтинга второго дивизиона задачи реально сложные, но интересные)

 

Спасибо гляну , а то на codeforces понять задачу - отдельное искусство 


  пакетик

1.gif.1f99febbff14b031a9c6af68cdeb49a0.gif

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


Ссылка на сообщение
soFFlen написал 48 минут назад:

Чуваки, в джаве же нельзя сортировать мапу и по ключам и по велью одновременно? чтобы кей следующего ентри был равен велью текущего, типа такого:
кей1 : велью1

велью1 == кей2 : велью2

велью2 == кей3 : велью3

и тд.

 

а то я там такого добра накодил с 2 листами, сетом и рекурсией :onneponimaet:

В принципе по ощущениям решение нормальное, но интересно есть ли вариант пооптимальнее

у тебя мапа элементами которого являются мапа,  элементы которой являются так же мапа и т.д. ? 

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


Ссылка на сообщение
(изменено)
Kant написал 41 минуту назад:

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

У меня идет конвертация уроков одной программы в другую, в уроках есть фреймы и у каждого фрейма есть его айди и екшн, который имеет айди фрейма, на который он ссылается, и это всё пишется в ЛинкедХешМапу (т.е. F1 -> F3) для сохранения последовательности. Но я нашел проблемку, что по какой-то причине в условной программе 1 у урока иногда бывает так, что фреймы по какой-то причине не по порядку сохраняются в конфиг урока, и иногда получается чтото типа:

F1 -> F2

F2 -> F3

F4->F5

...

F3->F4

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

Просто было интересно, возможно ли создать такой компаратор, который бы не сравнивал ключи или велью между собой, а ключ и велью друг с другом.

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


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

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


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

и тебе нужно на всех уровнях отсортировать entry по какому то алгоритму? Ты этого хочешь?

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


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

Да, типа если идет ентри F1 -> F2, то след ентри должен быть с ключом F2, а если такого ентри нет, то должен быть ентри с таким ключом, которого нет в values

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


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

Че как дела ребят


Боже, храни психику тех, кто воспринимает меня серьёзно.

 

 

Скрытый текст

-1.jpg

 

 

 

 

 

 

SBFluHd-RLY.png

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


Ссылка на сообщение
soFFlen написал 5 минут назад:

Да, типа если идет ентри F1 -> F2, то след ентри должен быть с ключом F2, а если такого ентри нет, то должен быть ентри с таким ключом, которого нет в values

а если их несколько то любой?

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


Ссылка на сообщение
soFFlen написал 28 минут назад:

Да, типа если идет ентри F1 -> F2, то след ентри должен быть с ключом F2, а если такого ентри нет, то должен быть ентри с таким ключом, которого нет в values

я до сих пор так и не понял, нахуя тебе вообще мапа, а не просто очередь


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

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


Ссылка на сообщение
(изменено)
soFFlen написал 56 минут назад:

Да, типа если идет ентри F1 -> F2, то след ентри должен быть с ключом F2, а если такого ентри нет, то должен быть ентри с таким ключом, которого нет в values

public <F> Map<F,F> sortedMap(Map<F,F> map)
    {
        
        Queue<F> withoutKVPair = new LinkedList<>();
        List<F> sortedKeys = new LinkedList<>(); 
        
        for (Entry<F, F> entry : map.entrySet())
        {
            if (!map.containsKey(entry.getValue()))
            {
                withoutKVPair.offer(entry.getKey());
            }
        }
        
        F curKey = withoutKVPair.peek();//вот тут возможно тебе нужно первое значение самому задать
        
        while (curKey != null)
        {
            sortedKeys.add(curKey);
            curKey = map.containsKey(curKey) ? map.get(curKey) : withoutKVPair.peek();
        }
        
        return sortedKeys.stream()
                .collect(Collectors.toMap(Function.identity(), map::get, null, LinkedHashMap::new));
    }

Типо такого, я не проверял если что. Если мапа может быть циклической то первую инциализацию curKey стоит прописать значение по умолчанию

Kant написал 27 минут назад:
soFFlen написал 56 минут назад:

Да, типа если идет ентри F1 -> F2, то след ентри должен быть с ключом F2, а если такого ентри нет, то должен быть ентри с таким ключом, которого нет в values

я до сих пор так и не понял, нахуя тебе вообще мапа, а не просто очередь

Ну видимо ему по ключу значение надо получать, в чём проблема то?

@soFFlen или тебе компаратор нужен, а не отсортированная мапа?


Изменено пользователем P0JIT0H
soFFlen понравилось это

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


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

в его описании и в твоем предложенном решении ключ и значение это один и тот же тип вообще и находятся в строго определенном порядке

если у тебя есть очередь, ты из нее и так доставать будешь в правильном порядке. если массив, то по индекс+1, мапа то нахуя

можно хоть прямо в тип вставить ссылку на следующий элемент и будет самодельный линкедлист вообще

 

 

если по каким-то религиозным причинами по индексу достать не хочется и хочется именно мапа, то проще из списка эту мапу и создать один раз, где тебя не будет ебать порядок, в котором оно там хранится, а ты будешь просто доставать. Потому что сейчас вопрос выглядит про "как мне самого себя выебать в жопу, когда я на самом деле хочу посрать"


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

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


Ссылка на сообщение
(изменено)
Kant написал 6 минут назад:

в его описании и в твоем предложенном решении ключ и значение это один и тот же тип вообще и находятся в строго определенном порядке

если у тебя есть очередь, ты из нее и так доставать будешь в правильном порядке. если массив, то по индекс+1, мапа то нахуя

можно хоть прямо в тип вставить ссылку на следующий элемент и будет самодельный линкедлист вообще

Ну нужно ему в каком то участке кода по ключу Frame102 достать элемент.  Как я понимаю по этому ключу не обязательно Frame103 лежит

@soFFlen ?

у тебя по ключу лежит ключ+1?

короче всё равно не понял что канту не нравится


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

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


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

 

soFFlen написал 54 минуты назад:

иногда бывает так, что фреймы по какой-то причине не по порядку сохраняются в конфиг урока

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

мне нужно отследить порядок фреймов как он должен быть изначально в уроке, а не как он в линкедхешмап зашел (предполагая, что первый элемент в линкедхешмапе истинно первый), то есть на какой следующий фрейм ссылается текущий, а мапа потому что там весь функционал дальше с мапой работает, там пол класса переписывать придется

 

Ща затестирую твое решение

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


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

есть мапа допустим с цифрами
5 -> 10
10 -> 15
1->100
15->20
100->101
нужно получить
5 -> 10
10 -> 15
15->20
1->100
100->101

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

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


Ссылка на сообщение
(изменено)
P0JIT0H написал 33 минуты назад:

Типо такого, я не проверял если что. Если мапа может быть циклической то первую инциализацию curKey стоит прописать значение по умолчанию

Немного неправильно работает, т.к. там и в while блоке бесконечно проходит, и до этого не совсем то записывает, но мне кажется это можно взять за основу и допилить грамотно, займусь этим в свободное время, спасибо большое (тыщу лет в профили не заходил, больше пятеру нельзя ставить чтоли :takpadazhi:)


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

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


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

Я НЕ ПОНИМАЮ НАХУЯ ВЫ ВООБЩЕ БЕРЕТЕ МАПЫ КОГДА РУССКИМ ПО БЕЛОМУ В КАЖДОМ СООБЩЕНИИ ГОВОРИТЕ СЛОВО ПОСЛЕДОВАТЕЛЬНОСТЬ.

МАПЫ НЕ ДЛЯ ПОСЛЕДОВАТЕЛЬНОСТЕЙ, МАПЫ ДЛЯ ДОСТУПА ПО КЛЮЧУ ЗА О(1), НАХУЯ ВАМ МАПЫ ВМЕСТО ПРОСТОГО СПИСКА БЛЯТЬ

 

 

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

в конфиге пусть и лежит как положено блять списком, ведь это сука ебаный список, если код писал какой-то долбоеб, и вместо того, чтобы иметь интерфейс вида "дай мне следующий фрейм урока", вместо потребления мапы, которая это делает, ну так блять создайте после чтения из конфига списка эту ссаную мапу в 2 строчки без мозгоебли.

GoldRobot и Pep_See понравилось это

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

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


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

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