对于一个长度为 n 的整数序列,你需要检查这个序列最多改变一个数后是否可以是非递减序列。
非递减序列的定义是:array[i]<=array[i+1] , for 1<=i<n;
数据范围: , 数组中的值满足
输入是一个长度为n的整数序列。
输出为; 是为1; 否为0
3 4 6 5 5 7 8
1
将6变成4, 序列变成 [3 4 4 5 5 7 8],符合非递减序列,因此输出1
3 4 6 5 4 7 8
0
n的取值范围为: [2, 1000]
a = [int(x) for x in input().split(" ")] idx = [i for i in range(1, len(a)-1) if not a[i - 1] <= a[i] <= a[i + 1]] print(1 if len(idx)==2 and a[idx[0]+1]>=a[idx[0]-1] else 0)
def func(arr): flag = 0 length = len(arr) for i in range(1, length): if arr[i] >= arr[i-1]: continue else: if flag == 1: flag += 1 break elif i - 2 < 0 or i + 1 >= length: flag += 1 elif arr[i] >= arr[i-2]: arr[i-1] = arr[i-2] flag += 1 elif arr[i+1] >= arr[i-1]: arr[i] = arr[i-1] flag += 1 else: flag = 2 break if flag == 2: print(0) else: print(1) arr = list(map(int, input().split())) func(arr)