public static boolean isUniqueChars2(String str) {
boolean[] char_set = new boolean[256];
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i);
if (char_set[val])
return false;
char_set[val] = true;
}
return true;
}
ответ
Размер вашего ввода, очевидно, O (n), но требования к памяти этой функции O (1), так как массив имеет постоянный размер. Сложность времени - это O (n), хотя она итератируется над строкой.
Я думаю, что временная сложность также O (1): никогда не будет более ~ 26 шагов, в зависимости от кодировки и наличия специальных символов –
Не считая входной строки, код имеет O(1)
сложность пространства. Он потребляет постоянное пространство, независимо от ввода.
Сложность времени также равна O(1)
, так как цикл никогда не выполнит более 256 шагов.
Просто интересно, есть ли «худший случай»? – Betlista
@Betlista - Функция завершается, когда найден первый повторяющийся символ или вход исчерпан. Не повторяющиеся символы - наихудший случай. (Обратите внимание, однако, что по принципу [принцип пикника] (http://en.wikipedia.org/wiki/Pigeonhole_principle) не может быть более 256 уникальных символов.) –
Технически цикл должен выйти после 256 итераций , независимо от входной строки, поэтому это худшее время O (1). – delnan
- 1. Почему пространственная сложность этого алгоритма O (n)?
- 2. Какова пространственная сложность этого кода?
- 3. Пробег и пространственная сложность этого кода
- 4. Почему пространственная сложность этого алгоритма O (1)
- 5. Какова пространственная сложность этого кода манипуляции строкой?
- 6. Какова пространственная сложность этого алгоритма?
- 7. Какова пространственная сложность этого алгоритма (n или log (n))?
- 8. Big O Time Сложность для этого кода
- 9. Является ли сложность этого кода O (n^2) или O (n^2 * n^(1/2))?
- 10. Какова пространственная сложность этого двоичного сложения?
- 11. Не должна ли пространственная сложность сортировки вставки быть O (N)?
- 12. Является ли временная сложность этого фрагмента кода O (n)?
- 13. Является ли временная сложность этого кода O (N^2)
- 14. Is Big O временная сложность этого кода сортировки n^2?
- 15. Пространственная сложность следующего уравнения
- 16. Какова временная сложность следующего кода O (n)?
- 17. O (N^2) сложность
- 18. Сложность этого кода
- 19. алгоритмическая сложность O (N)
- 20. Как анализировать сложность этого кода?
- 21. Big-O сложность этого алгоритма
- 22. Куча Сортовая пространственная сложность
- 23. Как найти временную сложность (Big O) этого блока кода?
- 24. Какова сложность этого фрагмента кода?
- 25. Пространственная сложность IDDFS
- 26. Почему пространственная сложность рекурсивного обходного пути O (h), а не O (n)
- 27. Какова временная сложность этого фрагмента кода? O (n) или O (logn * logn)
- 28. Какова временная сложность этого кода?
- 29. Какова большая сложность этого кода
- 30. Пространственная сложность на тривиальном примере
Это не так. Это 'O (1)'. –
'new boolean [str.length()]' не имеет смысла ... – Betlista
@TedHopp - если бы он это сделал, его программа сработала бы для строки длиной не более 65 символов, содержащих букву «A». IOW, это предложение не является педагогическим. –