【发布时间】:2020-05-26 20:10:24
【问题描述】:
我对辅助空间复杂性有点迷茫。
在我参加的讲座中,讲师指出字符串的空间复杂度为 O(n),因为字符串 (n) 的长度会有所不同。但是诸如数字、布尔值、未定义等原语具有恒定的空间复杂度 O(1)。
我很困惑,因为如果字符串空间的长度不同,那么数字也会不一样吗?因为它们也会有不同的“长度”?
我确实理解布尔值和未定义是 O(1),我的意思是真/假,未定义和 null 是与长度无关的实例。
如果有人能为我澄清这一点,我将不胜感激。
【问题讨论】:
-
如果你必须处理任意大的数字,那么存储整数 N 将占用 O(log |N|) 位空间,然后你还必须考虑做算术的时间复杂度对它们进行操作(因为您不能在 O(1) 时间内加/减/乘/除任意大的数字)。为简单起见,通常假设所涉及的数字与问题的实际输入大小相比不会“太大”,但当输入只是一个数字时,您必须更加小心。
-
一个字符串基本上是一个字符(或字节)数组,一个数组的大小为 O(n),其中
n是元素的数量。 -
谢谢你们的回答!有道理!
标签: algorithm space-complexity