在数据结构中使用第i个减号



每当我偶然发现DSA问题时,我总是看到诸如I - array dot length、I - array[I]、I + variabke或ith - j - 1之类的用法,特别是在数组中。我一直认为它是一个负数索引,使它没有定义,但我看到大多数程序员经常使用这个公式。这意味着什么?它是如何工作的?

我认为你所挣扎的是0索引的结果。

正如Dijkstra解释的那样,编程语言有各种不同的数组索引符号可供使用。由于各种原因,包括Dijkstra给出的原因,大多数语言都确定了以下符号规则。

the index of an array element is its distance from the start

因此第一个元素出现在索引0处。SECOND出现在索引1。如果数组的长度为n,则最后一个元素出现在索引n-1处。任何必须显式处理数组索引的算法都必须意识到这一点,并且经常会因为它而出现似乎是随机放置的-1。但如果你仔细思考逻辑,它们是完全合乎逻辑的,并且有一个重要的目的。

通常我们不必担心它。例如,在Python中,你可以输入:

for x in some_list:
...

如果你需要索引,你可以写:

for x in range(len(some_list)):
...

在像C这样的低级语言中,你必须是显式的,但你只需要习惯这样写:

for (int i = 0; i < n; i++) {
...
}

因此,这个细节以最自然的方式淡入背景,以编写代码。(事实上,它很容易做到,而且错误很少,这是采用该约定的部分原因!)但是当你需要明确地思考它时,你需要意识到它。

相关内容

  • 没有找到相关文章

最新更新