1
30
2026.11.02
2026.11.02
class Solution:
def minOperations(self, nums: list[int]) -> int:
n = len(nums)
cnt = p = 0
for i in range(1, n):
if nums[i - 1] > nums[i]:
cnt += 1
if cnt > 1:
break
p = i
if cnt == 0: # 已是递增
return 0
if cnt == 1 and nums[0] > nums[-1]: # 两个递增段
ans = min(p, n - p + 2)
else:
ans = inf
cnt = p = 0
for i in range(1, n):
if nums[i - 1] < nums[i]:
cnt += 1
if cnt > 1:
break
p = i
if cnt == 0: # 已是递减
return 1
if cnt == 1 and nums[0] < nums[-1]: # 两个递减段
ans = min(ans, p + 1, n - p + 1)
return -1 if ans == inf else ans
评论 (0)


