【发布时间】:2021-06-02 11:10:56
【问题描述】:
假设我有一个包含 8 个元素的数组:old_array = [6, 3, 0, 12, 14, 2, 10, 5],我从最后一个元素 old_array[7]=5 开始。我想使用新元素作为我想从old_array 复制到new_array 的下一个元素的索引。
结果是new_array = [0,2,5]。
下面是一些伪代码:
old_array = [6, 3, 0, 12, 14, 2, 10, 5]
i=7
len=0
while i>0:
len+=1
i=old_array[i]
i=7
while i>0:
new_array[len]=old_array[i]
len-=1
i=old_array[i]
这种方法确实有效,但是由于它使用重复的代码,它似乎效率不高;一个循环获取新数组的长度,另一个循环复制数组。 我的问题是有更好的方法吗?
编辑: 我期待一些伪代码比我当前的代码做得更好。 请注意,数组可以是任意的,除非最终会有一个 0 元素,并且有一种方法可以从最后一个元素获取它。我们也知道旧数组中的最后一个索引。 首选语言是 Python,但我也可以使用其他语言。
如果这个问题之前已经回答过或者可以改进,请指出我。谢谢。
【问题讨论】:
-
对于不同的编程语言,答案会有所不同。您使用什么语言?
-
这里已经回答了 -> stackoverflow.com/questions/4108313/…
-
@AndrewMerrill 我正在使用 Python。
-
@xx4g,这不是我想要的,那么你将如何将该数组复制到新数组?在 C 中执行 sizeof(array)/sizeof(array[0]) 只是给了我一个数组的大小,但我已经知道了。
-
我投了“需要关注”的票,因为不同的语言对“数组”是什么有不同的想法。如果您想要 Python 的答案,请询问 Python,如果您好奇,请为 C 创建另一个问题(显然,请先搜索,等等)。Stack Overflow 不是一个关于如何进行开放式讨论的好地方 所有编程语言做任何事情。
标签: python arrays loops optimization