Первый вариант имеет сложность O(n), а второй вариант — O(n^2), так как на каждой итерации происходит конкатенация строк. Правильно было бы сравнивать вариант с цепочкой вызовов с этим:
String.prototype.reverse = function() {
var i, a= [];
for(i = this.length; i >= 0; i--) {
a.push(this.charAt(i));
}
return a.join('');
};
Этот вариант так же имеет сложность O(n), но потребляет меньше памяти (с точностью до коэффициента, так как потребление памяти у них одинаковое — O(n)).
А в третьем варианте разве мы не получим O(N^2) и дополнительный расход памяти, так как на каждой итерации мы будем копировать исходный массив? Не лучше ли было адаптировать бинарный поиск, чтобы он пропускал элемент, для которого мы производим поиск?
Если честно я не пробовал ставить оба дополнения вместе. Да и не факт что их можно было вместе поставить, кажется они ставились как две разные игры, но это не точно.
Дополнение The Shadow of Death вносит в игру новые карты и одиночные кампании, новые объекты игрового мира, включающие в себя новые сборные артефакты. Несколько улучшений вводятся в игровой процесс Heroes III и в редактор карт игры. Дополнение также включает в себя некоторые элементы первого дополнения Armageddon’s Blade, за исключением его кампаний и сценариев, игровой фракции Сопряжение и генератора случайных карт.
Фильм сразу же после премьеры будет стоить намного дороже в том же самом IVI. Рублей 400, соизмеримо с походом в кинотеатр или с покупкой DVD. Некоторые фильмы еще в течении года будут стоить соизмеримую сумму. По подписке доступны в основном относительно старые или не популярные фильмы и сериалы.
Обычно отправляют 400 Bad Request и детали ошибки где-то в теле ответа. Но я за то, чтобы отправлять всегда 200 + код ошибки с деталями в теле. Еще приложение может отвечать кодом 500, когда совсем все плохо и нельзя корректно обработать запрос (ошибка в коде, отвалилась база данных и т.д., если мы это не обрабатываем в приложении). Ну и 50x коды может отдавать сам веб-сервер, если упало само приложение.
В JavaScript нет потоков (если не рассматривать последний Node.js). Весь код, хоть он и асинхронный, обрабатывается в одном потоке (см. Event loop). То есть в один момент времени выполняется только одна инструкция, хотя может казаться что они выполняются параллельно. В других ЯП, в которых реализована нормальная многопоточность, в один момент времени могут выполняться сразу несколько инструкций (в разных потоках). И как раз для организации доступа к разделяемой памяти между потоками и применяются блокировки.
Например, если нужно сделать некоторые математические расчеты в несколько потоков, то на JavaScript они будут выполняться, в действительности, последовательно, а на Java, например, будут выполняться параллельно (если правильно реализовать).
Читал статью и ждал, когда же автор упомянет третьих Героев. Графика этой игры мне до сих пор нравится.
Мне очень понравилась фраза, которую услышал на одном из докладов по выгоранию, как отличить усталость от выгорания:
У самого было выгорание пару раз. Один раз точь в точь как первый случай из поста. После этого решил завязывать с подработками.
То же самое было, но только с Альфа Банком. Хорошая защита.
Отличная статья, читается на одном дыхании. С нетерпением жду продолжения.
Да, точно, совсем забыл. Можно проинициализировать еще так:
Первый вариант имеет сложность O(n), а второй вариант — O(n^2), так как на каждой итерации происходит конкатенация строк. Правильно было бы сравнивать вариант с цепочкой вызовов с этим:
Этот вариант так же имеет сложность O(n), но потребляет меньше памяти (с точностью до коэффициента, так как потребление памяти у них одинаковое — O(n)).
А в третьем варианте разве мы не получим O(N^2) и дополнительный расход памяти, так как на каждой итерации мы будем копировать исходный массив? Не лучше ли было адаптировать бинарный поиск, чтобы он пропускал элемент, для которого мы производим поиск?
Давно уже было, даже и не помню всех тонкостей :)
https://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_III:_The_Shadow_of_Death
Помню мы на занятии по английскому тренировали произношение W и V с помощью следующей фразы:
Very well, everyone, everywhere
В свое время любил играть за Сопряжение. Правда в последних официальных версиях этот замок убрали.
Часто пользовались багами в игре, например двойным использование магии за один ход, или продажей дешевых артефактов по цене дорогих.
Фильм сразу же после премьеры будет стоить намного дороже в том же самом IVI. Рублей 400, соизмеримо с походом в кинотеатр или с покупкой DVD. Некоторые фильмы еще в течении года будут стоить соизмеримую сумму. По подписке доступны в основном относительно старые или не популярные фильмы и сериалы.
Например, если нужно сделать некоторые математические расчеты в несколько потоков, то на JavaScript они будут выполняться, в действительности, последовательно, а на Java, например, будут выполняться параллельно (если правильно реализовать).