在Python中查找降低并重新排列后的最大元素的程序

在Python中查找降低并重新排列后的最大元素的程序

假设我们有一个名为arr的数组。 我们必须对arr执行一些操作,以使其满足以下条件−

  • arr中的第一个元素必须为1。

  • 两个相邻元素之间的绝对差必须最多为1。

有两种操作。 我们可以执行这两种类型的操作任意次数−

  • 将arr的任何值减少到较小的正数。

  • 重新排列arr的元素以任意顺序排列。

我们必须找到执行操作以满足给定条件后arr中可能的最大值。

因此,如果输入如下arr = [3,3,2,3,2],则输出将为3,因为我们可以将最后一个元素减少到1,然后将它们重新排列为[1,2,3,3,3],最大值为3。

要解决此问题,我们将遵循以下步骤−

  • 对列表arr进行排序

  • arr [0]:= 1

  • for i in range 1 to size of arr – 1, do

    • arr [i]:=(arr [i-1] +1)和arr [i]的最小值
  • 返回arr中的最大值

例子

让我们查看下面的实现,以获得更好的理解−

def solve(arr):
   arr.sort()
   arr [0] = 1

   for i in range(1,len(arr)):
       arr [i] = min(arr [i-1] +1,arr [i])

   return max(arr)

arr = [3,3,2,3,2]
print(solve(arr))

输入

[3,3,2,3,2]

输出

3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程