Я читал вопрос, размещенный здесь: Алгоритм судоку на C #
И одним из опубликованных решений был этот фрагмент кода.
public static bool IsValid(int[] values) {
int flag = 0;
foreach (int value in values) {
if (value != 0) {
int bit = 1 << value;
if ((flag & bit) != 0) return false;
flag |= bit;
}
}
return true;
}
Идея состоит в том, что он обнаружит дубликаты в массив значений; но я поражен тем, как много я не знаю. Может кто-нибудь объяснить мне это?
РЕДАКТИРОВАТЬ: Спасибо всем. Так много отличных ответов, я не знаю, как выбрать один. Теперь это имеет смысл.