Подмножество размера 0 соответствует i == 0
.Чтобы устранить пустое подмножество, начинайте с i = 1
.
Подмножество размера 1 соответствует i
, имеющему ровно один установленный бит;или, что то же самое, когда это степень 2цикл и просто вставьте эту проверку:
if (Integer.bitCount(i) < 2) {
continue;
}
Это не так умно или эффективно, но это приятно и читабельно.