📌  相关文章
📜  国际空间研究组织 | ISRO CS 2020 |问题 62(1)

📅  最后修改于: 2023-12-03 14:50:48.675000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2020 |问题 62

这是ISRO CS 2020考试的第62个问题。 ISRO CS是印度空间研究组织面试的计算机科学考试。该考试旨在检测候选人对计算机科学的理解和知识。第62个问题是有关数组的。

问题描述

对于一个给定的数组,编写一个程序,将每个元素替换为该元素右侧的最大元素,并在最后一个元素中放置-1。

例如,如果数组为[17,18,5,4,6,1],则输出为[18,-1,6,6,1,-1]。

解决方案

首先,我们需要迭代整个数组并找到当前元素右侧的最大元素。然后,我们将该值存储在输出数组中,并将其分配给当前元素。如果找不到右侧的最大值,则将-1分配给当前元素。最后,我们将-1分配给输出数组的最后一个元素。

以下是用python实现的程序:

def replace_elements(arr):
    n = len(arr)
    output = [0]*n
    output[n-1] = -1
    max_right = arr[n-1]
    
    for i in range(n-2, -1, -1):
        output[i] = max_right
        if arr[i] > max_right:
            max_right = arr[i]
    
    return output

arr = [17,18,5,4,6,1]
output = replace_elements(arr)
print(output)

在该程序中,我们首先初始化一个长度为n的输出数组,并将输出数组的最后一个元素分配为-1。然后,我们从输入数组的最后一个元素开始迭代,并找到右侧最大的元素,并将其存储在输出数组中。最后,我们返回输出数组。

结论

在本文中,我们为ISRO CS 2020考试中的问题62提供了解决方案。我们使用python编写了一个程序,该程序会将给定数组中每个元素替换为它右侧的最大元素,并在最后一个位置插入-1。在编写解决方案时,我们介绍了如何使用迭代和条件语句,以及如何初始化和使用数组。