Vyacheslav
ты мой код читал, там все чики пуки же
твой код просто считает разницу между двумя типами скобок а не корректность их расстановки
Bogdan
мемори лимит != тайм лимит
Warox
Зависит от вашей нагрузки, сколько пользователей и от того, как часто изменяется рейтинг. Если рейтинг меняется часто + достаточно большое количество пользователей, то идея с индексом на поле рейтинга - это очень плохая идея. Без индекса ваш запрос будет работать медленно. На практике такое делается обычно подсчетом рейтинга в бекграунде + отдельной коллекцией в БД, к которой вы и обращаетесь.
этот ответ базируется на полном не понимании контекста вопроса :) В вакуме - да, могут быть проблемы Прочитать что человек писал - сразу все станет на места Самое оптимальное ли это решение - наверное нет но о5 же, предлагать делать это в бэкгараунде - ну ты почему то решил что можно забить на рилтайм типа когда апдейтнится тогда и будем показывать. Возможно забить и можно на рилтайм но с чего ты это взял и почему оно лучше без знания этих деталей ? :)
Vyacheslav
Вот тебе и ответ)
Фухх я уж думал что яндекс умеет строки читать быстрее чем O(n) )))))
Anonymous
Igor
но все тесты пройдены кроме 3(
Там врон ансеры еще кроме мемори лимитов
Igor
Кароч алгоритм гавно
Anonymous
Anonymous
просто хотел в школу попасть, ска, нахер эти алгоритмы(((
Igor
это понятно
При открытии скобки добавляешь 1 при закрытии вычитаешь, если последовательность верная то эта сумма в конце должна быть равной 0, а на протяжении всего подсчета не отрицательной
Bogdan
так рекурсия обычно быстрее циклов
Igor
так рекурсия обычно быстрее циклов
Ебать, новое слово в оптимизации)
Vyacheslav
просто хотел в школу попасть, ска, нахер эти алгоритмы(((
ты хотел сказать нахер ты их не учил? ) хотя эта хрень со скобками на алгоритмы слабо похожа вообще тут просто условие нужно внимательно учесть и закодить
Bogdan
не ну я не проверял на практике если рекурсия не исправляет ситуацию то ладно
Igor
не ну я не проверял на практике если рекурсия не исправляет ситуацию то ладно
На практике рекурсию для оптимизации превращают в циклы, а чтобы наоборот)
Сергей
Igor
почитай на досуге на тему big-O
Тут биг о не поможет. Потому что как раз биг о не поменяется)
Anonymous
При открытии скобки добавляешь 1 при закрытии вычитаешь, если последовательность верная то эта сумма в конце должна быть равной 0, а на протяжении всего подсчета не отрицательной
int balance = 0; for (int i = 0; i < fullLine.length(); i++) { if (fullLine.charAt(i) == '(') { balance += 1; } else if (fullLine.charAt(i) == ')') { balance -= 1; } if (balance < 0){ break; } } if (balance == 1) { System.out.println(fullLine.indexOf("(") + 1); } else { System.out.println(-1); } энивей вронг ансверы и проблемы с памятью
Anonymous
короч алгоритмы для лохов 😤
Anonymous
Точняк забей)
пошшшшел ты, на зло тебе буду жестко в них разбираться)))
Anonymous
Igor
Кароч есть скобочная последовательность, если ее можно удалением одной скобки пофиксить то вывести позицию скобки иначе -1. Если ответов несколько выбрать минимальный
Igor
Это если тлдр
Bogdan
тут скорее больше проблем в поиске того самого символа который все ломает
Сергей
ну тут это, количество ( и ) и порядок проверяем
Igor
ну тут это, количество ( и ) и порядок проверяем
Уже сказали просто кол во проверять нельзя
Bogdan
ну тут это, количество ( и ) и порядок проверяем
тут баланса мало тут надо найти третью ногу
Warox
тут скорее больше проблем в поиске того самого символа который все ломает
это обычно решается стэком встречае открывающую - добавляешь встречаешь закрывающуу - достаешь со стека и убеждаешься что там была открывающаа И удаляешь (ну или стек сам удалит при доставании)
Warox
в твоем случае возможна 1 ошибка потому все тоже самое, но можно разрешить1 ошибку
Шаман Каган
я уже говорил про стэк, мне Igor сказал что он тут не нужен
да есть у него такая привычка - экономить память )
Bogdan
вместо того что бы делать лабу по дотнету (точнее нет не так, по легаси супер пупер устаревшему дотнету) я сижу наблюдаю тут как решают задачу про скобки:D
Warox
вместо того что бы делать лабу по дотнету (точнее нет не так, по легаси супер пупер устаревшему дотнету) я сижу наблюдаю тут как решают задачу про скобки:D
ну я хз как без стека мб каунтером можно но если вопрос времени - то со стеком это на 10-15 минут задача )) Может и можно каунтером, не приходит в голову когда оно не будет работать
Vyacheslav
int balance = 0; for (int i = 0; i < fullLine.length(); i++) { if (fullLine.charAt(i) == '(') { balance += 1; } else if (fullLine.charAt(i) == ')') { balance -= 1; } if (balance < 0){ break; } } if (balance == 1) { System.out.println(fullLine.indexOf("(") + 1); } else { System.out.println(-1); } энивей вронг ансверы и проблемы с памятью
вот ты во первых вспомни, что там выражения со знаком равно посередине и скобки до равно нельзя считать вместе со скобками после равно а проблемы с памятью скоре всего из за непомерно длинных строк, которые наверняка предлагается просеять еще при вводе
Warox
но единственное а как со стеком найти потом это зло, вместе с индексом ложить?
когда встречаешь ошибку - заприши i куда то ну это и с каунтером сработает
Bogdan
когда встречаешь ошибку - заприши i куда то ну это и с каунтером сработает
ну я же и говорю индекс придётся ему записывать для такого)
Anonymous
Самое обидное, что получил задачи до старта и все равно обосрался
Bogdan
хотя с другой стороны потом можно просто проверить если в списке более 1 элемента то тогда -1, а если нет то и будет ответ индекса
Warox
Отдал все это вам товарищи, я нарешался на месяц вперёд
чет не похоже что нарешался достаточно ахах раз эта задача стала такой проблемой
Bogdan
я допер кажется как это работает правда хз что там по памяти будет и скорости
Anonymous
Bogdan
Хер я буду еще год ждать
это типо как универ?
Bogdan
ибо я не понял чу ты так из за яндекса паришся
Warox
Зато я очень квасивый
го селфи на фоне беседки этой
Anonymous
В армию?
Не, просто обиделся на Яндекс
Bogdan
а летную школу:D
Сидредин
а летную школу:D
Там е или ё?)
Bogdan
так сегодня явно что-то не так с чтением, я постоянно 1 букву считаю неправильно
Anonymous
ибо я не понял чу ты так из за яндекса паришся
Да это был мой билет в разработку, не повезло не фортануло
Bogdan
Да это был мой билет в разработку, не повезло не фортануло
я прочитал сначало летнюю и я нифига не понял:D
Bogdan
а ты написал летную:D
Bogdan
наверное программистов летать учат