O (3N) и O (N) будут считаться просто O (N).
Думаю, возможно, getOrDefault()
будет вариантом, если я правильно напомню:
for (int i = 0; i < n.length(); i++) {
int aux = n[i];
map.put(aux, map.getOrDefault(aux, 0) + 1);
}
, и ваше время и сложность памяти будут как O (N).
Я думаю, что другой более читаемой версией будет:
for (int i = 0; i < n.length(); i++) {
int aux = n[i];
map.put(aux, -~map.getOrDefault(aux, 0));
}
-~x
- это просто побитовая операция для x + 1
(-~x = x + 1
). Однако вы можете использовать то, что вам удобно.
Спасибо ciamej в комментарии!