Вероятно у него была активная жизненная позиция — жил недолго, но ярко. Нет, рандом точно не побеждает в этой игре — достаточно посмотреть игры с лидерами.
Как-то вы неаккуратно о crc32: не стоит ставить его в один ряд со всякими md5, sha1 и проч. — они являются криптографическими хэш-функциями, а crc32 вроде как для контроля целостности данных. Если его кто-то использует не по назначению, это его проблема. И здесь не только проблема в том, что он 32-х битный, а то, что легко подвержен атакам на критрохэш-функции. Да и вроде не устаревший он, а вовсю применяется по назначению. Несмотря на солидный возраст, crc32 все еще обнаруживает одиночные ошибки, двойные ошибки и ошибки в нечетном числе битов.
По причине свойственной ей скромности, Nicolette не упомянула, что этот раунд — оригинальный способ отметить собственный день рожденья. Любовь к программированию в действии, браво!
Есть тонкость в are_unique_characters. Автору следует либо выделять вектор на 128 элементов, а не 256 (тем более, что написано про ASCII), либо в строке int val = str.at(i); кастить правую часть к unsigned char.
Наверное, стоит добавить, что при удалении элемента (remove) текущая величина capacity не уменьшается. То есть если натолкать в ArrayList методами add() 100500 чисел, то его capacity после этого будет не меньше 100500 и останется таким даже если для всех элементов сделать remove(). Это может привести к своеобразным утечкам памяти. Иногда может оказаться полезным метод trimToSize() или запись вида «a = new ArrayList<T>()» для освобождения старого буфера для ссылок в «a».
Еще можно отметить, что если вы создаете ArrayList и знаете, что положите в него не менее n элементов, то немного эффективнее будет создать его как a = new ArraysList<Integer>(n), чтобы буфер не перераспределялся log n раз.
Может автор и профессионал, но почитал его первый листинг (Classifier6) и рождается естественный скепсис к человеку, кто написал код:
— который вернет «Can't classify negative numbers» на число 0;
— имеет public метод getFactors — мало того, что ненужный, так еще и позволяющий испортить состояние программы вызовом classifier.getFactors().insert(42);
— делающий кучу вычислений на каждый вызов isPerfect/isAbundant/isDeficient;
— работающий неправильно для больших number по причине переполнения;
И немного ворчания:
— «static public», а не наоборот, несмотря на java.sun.com/docs/books/jls/third_edition/html/classes.html#78091;
— поля не final, хотя могли бы быть таковыми;
— не нравятся подчеркивания в именах полей.
Я не до конца понял: вот добавил я модельный класс, DAO, какой-нибудь сервис, контроллер и шаблон — после этого я смогу в браузере нажать F5 и все заработает без какого-либо редеплоймента? Браузер отобразит новую страницу за секунду или менее?
Посмотрите эту задачу code.google.com/codejam/contest/639102/dashboard#s=p0
Примерно там же есть и разбор.
Самого Дениса Попова!
Еще можно отметить, что если вы создаете ArrayList и знаете, что положите в него не менее n элементов, то немного эффективнее будет создать его как a = new ArraysList<Integer>(n), чтобы буфер не перераспределялся log n раз.
— который вернет «Can't classify negative numbers» на число 0;
— имеет public метод getFactors — мало того, что ненужный, так еще и позволяющий испортить состояние программы вызовом classifier.getFactors().insert(42);
— делающий кучу вычислений на каждый вызов isPerfect/isAbundant/isDeficient;
— работающий неправильно для больших number по причине переполнения;
И немного ворчания:
— «static public», а не наоборот, несмотря на java.sun.com/docs/books/jls/third_edition/html/classes.html#78091;
— поля не final, хотя могли бы быть таковыми;
— не нравятся подчеркивания в именах полей.