📅  最后修改于: 2023-12-03 14:57:21.283000             🧑  作者: Mango
这个问题可以通过一个简单的算法来解决。我们可以比较原始数组和排序数组,找到它们第一个不同的元素,然后删除原始数组中该元素之前的所有元素。这样,我们就可以重新排列剩余的数组,以形成排序的数组。
以下是一种可能的实现方法:
def find_prefix_to_remove(original_array, sorted_array):
prefix_length = 0
for i in range(min(len(original_array), len(sorted_array))):
if original_array[i] != sorted_array[i]:
break
prefix_length += 1
return prefix_length
original_array = [3, 1, 4, 2, 5]
sorted_array = sorted(original_array)
prefix_length = find_prefix_to_remove(original_array, sorted_array)
new_array = original_array[prefix_length:]
print(new_array)
# Output: [1, 4, 2, 5]
在这个实现中,我们首先将原始数组和排序数组的长度取最小值,以避免数组越界。然后,我们逐个比较它们的元素,找到它们第一个不同的元素。最后,我们计算需要删除的前缀长度,然后使用 Python 列表切片从原始数组中删除它们。