Различные подходы к решению проблемы

Подход 1.Использование встроенных методов

Подход 2.Используйте все натуральные числа от 1.

  1. Если число равно 0 или 1, то вернуть число
  2. Создайте две переменные, одна будет счетчиком, а другая будет хранить квадраты счетчика.
  3. Цикл до квадрата счетчика меньше или равен заданному числу
  4. Увеличьте переменную счетчика на единицу и обновите значение другой переменной.
  5. Вернуть счетчик

Временная сложность:O(√n)

Пространственная сложность:O(1)

Подход 3.Двоичный поиск

  1. Эта функция примет число (x) в качестве аргумента
  2. Создайте две переменные, low и high, и инициализируйте их значениями 0 и x.
  3. Создайте цикл с условием low < high
  4. Найдите среднее значение floor((low + high) / 2)
  5. Если квадрат mid-value равен x, возвратить mid
  6. Если больше x, high = mid - 1
  7. В противном случае low = mid + 1
  8. Если x < high * high вернуть high - 1
  9. В противном случае вернуть high

Примечание. Мы берем высокое значение floor(high/2), поскольку нижний предел квадратного корня из x не может быть больше x/2, когда x > 1.

Временная сложность:O(log n)

Пространственная сложность:O(1)

Также читайте,