在Python中减少和重新排列后查找最大元素的程序
假设我们有一个名为arr的数组。我们必须对arr执行一些操作,以便它满足这些条件-
arr中的第一个元素必须是1。
任意2个相邻元素之间的绝对差值最多为1。
并且有两个操作。我们可以多次执行这两种类型的操作-
将arr的任何值减小到较小的正数。
将arr的元素重新排列为任意顺序。
我们必须在执行操作后找到arr中的最大可能值以满足给定条件。
因此,如果输入类似于arr=[3,3,2,3,2],那么输出将是3,因为我们可以将最后一个元素减少到1,然后像[1,2,3,3一样重新排列它们,3],最大值为3。
示例
让我们看看以下实现以获得更好的理解-
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
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练