I was just practicing a problem on codechef with the code CARDMGK https://www.codechef.com/problems/CARDMGK In this problem, after solving, we had to check if the given sequence is a non-decreasing sequence or not. My original code is this ->
def checkOrder(L):
return all(x<=y for x, y in zip(L, L[1:]))
T = int(input())
for x in range(T):
N = int(input())
A = input().split()
A = list(map(int, A))
minA = min(A)
idx = A.index(minA)
temp = sorted(A)
A = A[idx:] + A[:idx]
if checkOrder(A):
print("YES")
else:
print("NO")
But if I use this,
def checkOrder(L):
L = [L[-1]] + L
count = 0
for x in range(len(L)-1):
if L[x] > L[x+1]:
count += 1
if count > 1:
return False
return True
For the check order function, the code works correctly. I wanna know what’s the difference, because my logic behind both of them is same. I just wanna where did I mess up?